【发布时间】:2015-12-01 17:17:50
【问题描述】:
我正在尝试使用嵌入在 AVPlayerViewController 中的 AVPlayer 流式传输 HLS 视频。为此,我正在按照此处的苹果文档执行以下操作来设置 AVPlayerViewController:https://developer.apple.com/library/mac/documentation/AudioVideo/Conceptual/AVFoundationPG/Articles/02_Playback.html
let url = NSURL.init(string: "http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8") // example URL from apple dev works!
let asset = AVURLAsset.init(URL: url!)
let requestedKeys = ["tracks"]
asset.loadValuesAsynchronouslyForKeys(requestedKeys) {
() -> Void in
dispatch_async(dispatch_get_main_queue())
{
let error = NSErrorPointer()
let status = asset.statusOfValueForKey("tracks", error: error)
if (status == AVKeyValueStatus.Loaded) {
let playerItem = AVPlayerItem.init(asset: asset)
playerItem.addObserver(self, forKeyPath: "status", options: NSKeyValueObservingOptions.init(rawValue: 0), context: nil)
self.avPlayerViewController.player = AVPlayer.init(playerItem: playerItem)
}
else {
// You should deal with the error appropriately.
NSLog("The asset's tracks were not loaded:\n%@", (error.memory)!.localizedDescription);
}
}
}
这一切都很好。但是当我将网址更改为
let url = NSURL.init(string: "http://cdn-fms.rbs.com.br/hls-vod/sample1_1500kbps.f4v.m3u8") // but this one doesn't
或任何其他 HLS 流不再起作用。我得到这张图片: dead AVPlayer
我可以使用 safari 打开流,它工作正常。我还使用 Apple 的 HTTP Live Streaming Tools 验证了流
我现在有点卡住了。有什么想法吗?
【问题讨论】:
-
您是否尝试过为此向 Apple 提交错误报告?
-
我遇到了同样的问题,这个解决方案对我有帮助,stackoverflow.com/a/53020960/9049312
标签: ios swift streaming avplayer http-live-streaming