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

 陈家碧玉3 发布于 2022-10-30 16:49

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

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

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

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

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

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

    沙盒目录

    • Documents

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

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

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

    • Caches

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

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

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

    • tmp

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

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

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

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

    • Preferences

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

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

    2022-10-31 21:26 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有