ios - 在 iOS 中播放 m3u8 文件
问题描述
我知道这个问题问了很多时间但没有得到正确的解决方案,
我有一个不能在 AVPlayer 中工作的 m3u8 文件,但是如果我使用已经在互联网上的其他 m3u8 文件,它可以在 AVPlayer 中正常工作,这是我的代码
func playVideo() {
let videoURL = URL(string: "https://architectsummit.s3.us-east-2.amazonaws.com/hls/playlist-with-vtt.m3u8")
let player = AVPlayer(url: videoURL!)
var playerViewController = AVPlayerViewController()
playerViewController.player = player
DispatchQueue.main.async {
self.present(playerViewController, animated: true) {
playerViewController.player!.play()
}
}
}
在上面的代码中,我使用了我们的开发人员提供的 m3u8 文件,但是如果我在上面的代码视频中使用这个 url ' https://bitdash-a.akamaihd.net/content/sintel/hls/playlist.m3u8 ' 正在播放什么问题任何人都可以帮助我。
解决方案
我在浏览器中打开了 .m3u8 链接,正在下载的清单是错误的。清单响应是
#EXTM3U
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="English",DEFAULT=YES,AUTOSELECT=YES,FORCED=NO,LANGUAGE="en",URI=vtt_en.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=864000,SUBTITLES="subs"
hls-medium.m3u8
清单的格式必须是这样的
服务器 .m3u8 文件不包含任何播放列表
另外因为您使用亚马逊,您可以从亚马逊页面查看一些示例
推荐阅读
- google-chrome-extension - 如何将消息从站点传递到主机并在 google-chrome-extension 中获得响应
- javascript - 如何提取对象键
- java - 使用 iText5 从 PDF 中提取孟加拉语文本
- laravel - 由于有人使用我的 SMTP 凭证发送垃圾邮件,我的 AWS SES 账户被暂停
- julia - 目标“runtime_ccall.o”的配方安装 julia 失败(llvm?)
- linux - 如何跨会话保留环境变量
- spring - Derby 在 unix 上打开到数据库路径的连接
- salesforce - 在 Salesforce 的 LWC 中实施本地化(针对字符串)的最佳实践是什么?
- r - R Bookdown 网站自动折叠侧边栏
- php - 如何在codeigniter中输入多个帖子