iOS 我想做一个在线音乐播放 并且可以带缓存功能 不知道思路是否正确

如题 我是这么想的 首先我的UI会是一个tableview的列表 然后我会去搜索歌 一开始列表为空 此时从搜索去听歌 这时就是在线听歌 然后再缓存这首歌 下次即使没网也可以听上次那首歌
我的思路 我现在已经达到在线听歌的目的了
1、 我的想法是如果用户一进来点击列表的歌 我先去本地沙盒找有这首歌的缓存没有 如果有直接播放 没有就远程请求在线听歌
2、关于缓存歌曲 我想的是 用户一旦在线听完了这首歌 我就下载这首歌 并写入缓存

有几个疑惑
1、最重要的是 我这种思路是不是本来就错了 第一次做关于音频的
2、关于写入沙盒的路径 不知道写入哪儿 希望能在这儿得到答案
3、可以边听边下边写入缓存吗 这样能达到有一半歌是在缓存中一半是还没下载好的情况吗

阅读 3.8k
1 个回答

请问你用哪个类做的在线音乐播放
试下豆瓣的 DOUAudioStreamer

  1. 你想要实时在线听歌就肯定要用流处理,本来就是一边加载一边播放的

  2. 加载完会在缓存文件夹,然后移动到你想要放的文件夹内

  3. 做一个字典,用于保存歌曲的唯一标识符和本地地址,下次播放就先在本地寻找,没有才去网络加载

沙盒目录

  • Documents

    • 需要保存由"应用程序本身"产生的文件或者数据,例如:游戏进度、涂鸦软件的绘图

    • 目录中的文件会被自动保存在 iCloud

    • 注意:不要保存从网络上下载的文件,否则会无法上架!

  • Caches

    • 保存临时文件,"后续需要使用",例如:缓存图片,离线数据(地图数据)

    • 系统不会清理 cache 目录中的文件

    • 就要求程序开发时,"必须提供 cache 目录的清理解决方案"

  • tmp

    • 保存临时文件,"后续不需要使用"

    • tmp 目录中的文件,系统会自动清理

    • 重新启动手机,tmp 目录会被清空

    • 系统磁盘空间不足时,系统也会自动清理

  • Preferences

    • 用户偏好,使用 NSUserDefault 直接读写!

    • 如果要想数据及时写入磁盘,还需要调用一个同步方法

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题