2
私にとっては、シミュレータとリアルデバイス(iPhone 5S)の両方で "m3u8" urlで動作しません。 同じ時間に、Appleのデモがうまく動作しますが、私は違いは見られません。 そして、他のURLの拡張子を持つそれは大丈夫です(例えば、URLの最後に「m3u9」)AVAssetResourceLoaderDelegateとHLSが機能しません。
import UIKit
import AVKit
import AVFoundation
class ViewController: UIViewController, AVAssetResourceLoaderDelegate {
override func viewDidLoad() {
super.viewDidLoad()
// if I change m3u8 to different file extension, it's working good
let url = NSURL(string: "cplp://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8")
let asset = AVURLAsset(URL: url!, options: nil)
asset.resourceLoader.setDelegate(self, queue: dispatch_queue_create("AVARLDelegateDemo loader", nil))
let item = AVPlayerItem(asset: asset)
let player = AVPlayer(playerItem: item)
player.play()
}
func resourceLoader(resourceLoader: AVAssetResourceLoader, shouldWaitForLoadingOfRequestedResource loadingRequest: AVAssetResourceLoadingRequest) -> Bool {
NSLog("This method is never called in case of m3u8 url")
return true
}
}