9
基本的なラジオアプリを試していて、URLのリストを取得しています:無効なURL(間違ったパスまたは再生可能なファイルがない正しいパス)オブザーバーは決して呼び出されないようです。AVPlayer Observerが無効なURLを呼び出すことはありません
urlStream = [NSURL URLWithString:mp3URL];
self.playerItem = [AVPlayerItem playerItemWithURL:urlStream];
[playerItem addObserver:self forKeyPath:@"playbackBufferEmpty" options:NSKeyValueObservingOptionNew context:nil];
[playerItem addObserver:self forKeyPath:@"playbackLikelyToKeepUp" options:NSKeyValueObservingOptionNew context:nil];
[appDelegate.player addObserver:self forKeyPath:@"status" options:NSKeyValueObservingOptionNew context:nil];
[appDelegate.player replaceCurrentItemWithPlayerItem:playerItem]; //OK
[appDelegate.player play];
と相対オブザーバ方法で私が得た:ここに私のコードの一部ではある
if (object == playerItem && [keyPath isEqualToString:@"playbackBufferEmpty"])
{
if (playerItem.playbackBufferEmpty)
{
NSLog(@"playbackBufferEmpty");
[self alertBuffer];
}
}
if (object == playerItem && [keyPath isEqualToString:@"playbackLikelyToKeepUp"])
{
if (playerItem.playbackLikelyToKeepUp)
{
NSLog(@"playbackLikelyToKeepUp");
[loadStation stopAnimating];
if (playerItem.status == AVPlayerItemStatusReadyToPlay) {
NSLog(@"AVPlayerItemStatusReadyToPlay");
}
else if (playerItem.status == AVPlayerStatusFailed) {
NSLog(@"AVPlayerStatusFailed");
}
else if (playerItem.status == AVPlayerStatusUnknown) {
NSLog(@"AVPlayerStatusUnknown");
}
}
}
else if (object == appDelegate.player && [keyPath isEqualToString:@"status"]) {
if (appDelegate.player.status == AVPlayerStatusReadyToPlay) {
NSLog(@"Player Status = Ready to Play");
}
if (appDelegate.player.status == AVPlayerStatusUnknown) {
NSLog(@"Player Status = Sometimes did wrong.");
[self alertUnknown];
}
if (appDelegate.player.status == AVPlayerStatusFailed) {
NSLog(@"Player Status = Status Failed.");
[self alertStatusFailed];
}
}
私は私だけの状態ReadyToPlayを得呼び出すどのようなURL:私は何も起こりません不正なURLを選択した場合。 URLが正しく動作しない例:http://audioplayer.wunderground.com:80/RHBrant/Cheyenne.mp3.m3u
どこが間違っていますか?
ありがとうございます。