电视直播(.m8u3文件)在浏览器中播放,但在Swift应用中不播放

时间:2016-12-07 18:44:09

标签: ios swift avplayer

我正在使用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我的播放器播放。

我该怎么办?

1 个答案:

答案 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),这基本上意味着该文件必须存储在服务器上。
如果需要,可以提供示例。