I have a problem using AVURLAsset.
NSString * const kContentURL = @
\"http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8\";
...
NSURL *con
You can't directly create an AVURLAsset for an HTTP Live stream as stated in Apple's AV Foundation Programming Guide.
You'll have to create an AVPlayerItem with the stream url and instantiate an AVPlayer with it
AVPlayerItem *pItem = [AVPlayerItem playerItemWithURL:theStreamURL];
AVPlayer *player = [AVPlayer playerWithPlayerItem:pItem];
If you need to have access to the AVURLAsset behind that you could follow these steps.
Step 1/ register for changes of the status property of the player item
[playerItem addObserver:self forKeyPath:@"status" options:0 context:nil];
Step 2/ in observeValueForKeyPath:ofObject:change:context:
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object
change:(NSDictionary *)change context:(void *)context {
if ([keyPath isEqualToString:@"status"]) {
AVPlayerItem *pItem = (AVPlayerItem *)object;
if (pItem.status == AVPlayerItemStatusReadyToPlay) {
// Here you can access to the player item's asset
// e.g.: self.asset = (AVURLAsset *)pItem.asset;
}
}
}
EDIT: corrected the answer