我正在使用 Swift 开发直播电视应用,但我的 channel 文件 URL 无法播放。
我的代码:
override func viewDidLoad() {
super.viewDidLoad()
if let url = URL(string: "http://biwsat.com:8080/get.php?username=eYIvPmJeT2&password=3331jALAKY&type=m3u&output=ts"){
let player = AVPlayer(url: url)
let controller=AVPlayerViewController()
controller.player=player
controller.view.frame = self.view.frame
self.view.addSubview(controller.view)
self.addChildViewController(controller)
player.play()
}
}
如果我使用此链接:http://devstreaming.apple.com/videos/wwdc/2016/102w0bsn0ge83qfv7za/102/hls_vod_mvp.m3u8我的播放器在播放。
我该怎么办?
Best Answer-推荐答案 strong>
出于某种原因,AVPlayer 不接受从 php Get 函数传递的文件。它需要与 .m3u8 扩展名的直接链接。你有两个选择:
1. 找到一种显示链接的方法,使其以 .m3u8 结尾
2. 如果您有权编辑 GET 方法和服务器,请查看 Sommer's solution
3. 如果您无权访问服务器,对我有用的一个巨大解决方法是下载链接提供的文件,然后使用 HTTP 服务器的实现(例如 GCDWebServer -是轻量级的并且仍然受支持)来广播文件并在 AVPlayer 中以 URL 的形式访问它。 Apple 不允许播放本地 m3u/m3u8 文件,因此您必须使用 HTTP Live Streaming (HLS),这基本上意味着文件必须存储在服务器上。
如有需要,可提供示例。
关于ios - 电视直播(.m8u3 文件)在浏览器中播放,但不在 Swift 应用程序中,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/41025000/
|