我想知道是否可以使用以下代码使用 HLS 从 HTTPS 服务器流式传输 -
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.view.addSubview(playerController.view)
playerController.view.frame = self.view.frame
player.play()
我可以从 HTTP 服务器流式传输,但是当我将 URL 更改为我公司服务器的 URL 时它不起作用,唯一的区别是我公司的视频在其 URL 中有 HTTPS,而苹果的示例视频没有,我正在 XCode 中的模拟器上进行测试
是的,您可以从HTTPS服务器流式传输HLS。HLS流通过HTTP传输,HTTPS只是通过TLS传输HTTP,大多数时候它对客户端是透明的。您唯一需要的是播放器中对HTTPS的支持,所有主要播放器都已经拥有。
https://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8
不起作用,因为devimages.apple.com
证书无效。只需使用浏览器浏览网址即可。它会警告您并为您提供有关到底是什么问题的其他信息。
我想您公司服务器的问题是一样的 - 错误或自签名证书。
验证https服务器的另一种快速方法是用户curl。例如:
curl "https://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8"
投诉:
curl: (51) SSL: no alternative certificate subject name matches target host name 'devimages.apple.com'