アプリで HLS ストリームを読み込もうとしていますが、正しく表示することさえできません。アプリの初期ビュー コントローラーとして設定された AVPlayerViewController と次のコードがあります。
import UIKit
import AVKit
import AVFoundation
private var playerContext = 0
class PlayerViewController: AVPlayerViewController {
override func awakeFromNib() {
print("awake!")
let URL = NSURL(string: "http://live-lh.daserste.de/i/daserste_de@91204/index_2692_av-b.m3u8")!
let player = AVPlayer(URL: URL)
// player.addObserver(self, forKeyPath: "status", options: [.Old, .New], context: &playerContext) // commented out for testing purposes, doesn't make any difference
self.player = player
self.showsPlaybackControls = true
}
override func observeValueForKeyPath(keyPath: String?, ofObject object: AnyObject?, change: [String : AnyObject]?, context: UnsafeMutablePointer<Void>) {
if context == &playerContext {
print("\(keyPath!): \(change!)")
} else {
super.observeValueForKeyPath(keyPath, ofObject: object, change: change, context: context)
}
}
// viewDidLoad() and didReceiveMemoryWarning()
}
その URL をデスクトップの Safari で開くと完全に機能します (ただし、表示するにはドイツにいる必要があるかもしれません)。そのため、iOS で機能しない理由がわかりません。ストリームの代わりに、私のアプリはこれを表示します:
コードの何が問題になっていますか?
更新:使用する URL に関係なく、無効な URL を使用してもまったく同じことが起こります。ここで何が起こっているのかわかりません。