OGeek|极客世界-中国程序员成长平台

标题: ios - 电视直播(.m8u3 文件)在浏览器中播放,但不在 Swift 应用程序中 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-11 18:17
标题: ios - 电视直播(.m8u3 文件)在浏览器中播放,但不在 Swift 应用程序中

我正在使用 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-推荐答案


出于某种原因,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/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (https://ogeek.cn/) Powered by Discuz! X3.4