在iOS 9上播放HLS m3u8格式的视频

7

我在播放视频流(HLS m3u8)方面遇到了问题。我创建了一个新的iOS9项目,并使用AVPlayer来播放视频流。虽然测试流可以正常工作,但我在Windows和Android应用程序中使用的所有其他视频流都不能与iOS AVPlayer类一起使用。您能否请给建议,是否可以调整AVPlayer或可以使用哪些第三方现代库? 更新:尝试了Vitamio的演示应用程序,可以工作。

这是我使用的代码:

    @IBAction func pressed(sender: AnyObject) {
// this url work, all others not
        let url = NSURL(string:"http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8")
        let player = AVPlayer(URL: url!)
        let playerController = AVPlayerViewController()

        playerController.player = player
        self.addChildViewController(playerController)
        self.myView.addSubview(playerController.view)
        playerController.view.frame = self.myView.frame

        player.play()
    }

我有其他的m3u8流可以工作。有时候我发现一个在iPhone 6上可以工作但在5S上却不行(iOS版本相同),这很奇怪。你的其他流出现了什么错误? - Graham Perks
你好,我打开了支持票据,苹果的支持工程师说这些流具有非标准格式,当我尝试播放时,只会出现黑屏和带有交叉播放符号。 - Anton
尝试了使用DFVideoPlayer的Vitamio,iPad Air存在性能问题,许多流无法播放,但这些流可以在Android媒体播放器上工作,是否有替代方案? - Anton
1
你试图播放的文件中有什么非标准内容? - Graham Perks
我认为这些流(不是文件)可以在所有其他播放器和平台上播放,因此它们符合某种“标准”,但我对HLS并不是专家。 - Anton
首先使用 https://www.hlsplayer.net/ 检查您的视频。输入 M3U8 URL 并播放,检查流是否正在播放。 - Anny
1个回答

2
这个问题已经解决,来自苹果支持的信息如下:

"应用传输安全性阻止了明文HTTP资源加载,因为它是不安全的。通过您的应用程序的Info.plist文件可以配置临时例外情况。

我们建议查看WWDC 2015的706、711会话以获取更多详细信息。浏览NSAppTransportSecurity开发者资源也是推荐的。"


2
请注意,NSAllowsArbitraryLoads 无法像其他情况下那样解决此问题。对于 AVPlayer,您必须添加明确的例外域以允许不安全的 HTTP 视频播放。 - user3344977

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接