我正在使用Swift开发一个实时流媒体电视应用,但我的频道文件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我的播放器播放。
我该怎么办?
答案 0 :(得分:0)
由于某些原因,AVPlayer不接受从PHP Get函数传递的文件。它需要与.m3u8扩展的直接链接。你有两个选择:
1。找到一种方式来呈现链接,使其以.m3u8结尾
2。如果您有权编辑GET方法和服务器,请查看Sommer's solution
3。如果您无法访问服务器,那么对我有用的大型解决方法是下载链接提供的文件,然后使用HTTP服务器的实现(例如{{ 3}} - 是轻量级的,仍然支持)广播文件并将其作为AVPlayer中的URL进行访问。 Apple不允许播放本地m3u / m3u8文件,因此您必须使用HTTP Live Streaming(HLS),这基本上意味着该文件必须存储在服务器上。
如果需要,可以提供示例。