作者丨Willie_
https://juejin.im/post/5d3918fbf265da1b6c5fb93f
WLM3U 是一个用 Swift 实现的 M3U 工具。
项目地址
https://github.com/WillieWangWei/WLM3U
示例
clone 这个仓库,接着执行 pod install 命令,然后运行示例项目。
要求
安装
WLM3U 可通过 CocoaPods 安装,只需将以下行添加到 Podfile 即可
使用
解析 M3U 文件
下载 M3U 文件描述的 ts 文件
将下载的 ts 文件合并成一个文件
自动获取 ts 文件总大小
WLM3U 支持自动获取所有文件的总大小,只需设置 calculateSize 参数即可:
获取大小的过程是异步的,可以通过接收 TaskGetFileSizeProgressNotification 和 TaskGetFileSizeCompletionNotification 来获取大小数据。
暂停与恢复任务
为了简化接口,WLM3U 没有 暂停 与 恢复 的概念,它们和 取消 与 添加 是一样的,所以:
需要暂停一个任务时,调用 cancel(url: URL)。
需要取消一个任务时,调用 cancel(url: URL),并通过 folder(for url: URL) 获取到此任务缓存目录,并删除它即可。
需要添加一个任务时,调用 attach(url: URL)。
需要恢复一个任务时,调用 attach(url: URL),如果本地存在之前的缓存,会自动继续下载剩余的文件。
监听状态
WLM3U 内置了几个状态的通知,你可以接收这些通知来处理数据:
播放下载的文件
AVPlayer 与 WLM3U 暂不支持播放本地 ts 文件,这里提供两个简单可行的替代方案。
使用 GCDWebServer 搭建本地服务
引入 GCDWebServer 库:
(https://github.com/swisspol/GCDWebServer)
创建本地 HTTP 服务来提供下载好的 ts 文件:
使用 AVPlayer 来播放本地服务提供的 ts 文件:
使用 FFmpeg 将 ts 文件转码成 mp4 文件
引入 mobile-ffmpeg-full 库:
(https://github.com/tanersener/mobile-ffmpeg)
执行转码命令:
接下来直接播放转码得到的 mp4 文件即可。
推荐↓↓↓
长
按
关
注
?【16个技术公众号】都在这里!
涵盖:程序员大咖、源码共读、程序员共读、数据结构与算法、黑客技术和网络安全、大数据科技、编程前端、Java、Python、Web编程开发、Android、iOS开发、Linux、数据库研发、幽默程序员等。
万水千山总是情,点个 “ 在看” 行不行