13

私はAVPlayer次のコードを使用してインターネットからのライブストリームを再生するために使用しています:

    NSString *u = @"http://192.192.192.192:8036";
NSURL *url = [NSURL URLWithString:u];
radiosound = [[AVPlayer alloc] initWithURL:url];
    [radiosound play]; 

そして、私は1つのボタンを再生します:

[radiosound play]; 

と一時停止:

[radiosound pause]; 

私の問題は、再生/一時停止のボタンを1つだけ使用したいのですが、このコードを使用している場合

if (radiosound.isPlaying) {         
    [radiosound pause]; 
} else {                
     [radiosound play]; 
}

AVPlayerが「isPlaying」を認識しないため、アプリがクラッシュします。

任意のヒント?

4

2 に答える 2

38

AVPlayerisPlayingプロパティを持っていません。プロパティを使用しrateます (0.0 は停止、1.0 は再生を意味します)。

if (radiosound.rate == 1.0) {         
    [radiosound pause]; 
} else {                
     [radiosound play]; 
}

ここAVPlayerでクラスリファレンスを見ることができます。

于 2011-09-07T19:42:41.533 に答える
5

いくつかの調査の後、ネットワーク接続がない場合でも、メッセージAVPlayerを受信した後、レートを 1.0 に設定することがわかりました。-play

したがって、 currentItem も確認し、次のようにメソッドを変更しました。

-(BOOL)isPlaying
{
    if (self.player.currentItem && self.player.rate != 0)
    {
        return YES;
    }
    return NO;
}

このアプローチに何か問題があると思われる場合は、ご意見をお聞かせください。

于 2013-05-31T13:19:00.223 に答える