タイトルの通り、インスタンスを使ってiOSとOS Xの両方でインターネットラジオを生配信しようとしています。AVPlayer
シンプルな方法ですべてが期待どおりに機能しますplayer = [AVPlayer playerWithURL:URL];
アプリを使用しているときに、ストリームが 15 分後に停止することに気付きました。問題は、注意が払われなかったことです。
[player addObserver:self forKeyPath:@"status" options:0 context:nil];
[player addObserver:self forKeyPath:@"rate" options:0 context:nil];
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
if (object == player) {
if ([keyPath isEqualToString:@"status"]) {
NSLog(@"status -> %ld", player.status);
}
if ([keyPath isEqualToString:@"rate"]) {
NSLog(@"rate -> %f", player.rate);
}
}
}
両方の値が切り替わりました1
が、オーディオの再生が停止しても二度と切り替わることはありません。iOS では、右上の再生アイコンがなくなりましたが、player.rate の値が変わらないため、アプリはまだ音声が再生されていると認識しています。
最初はストリームだと思ったので、5by5 と twit の他のストリームを試してみましたが、同じことが起こりました。
それから私はそれが私の接続だと思ったので、ストリームが始まった後、私は接続をオフにしましAVPlayerItemDidPlayToEndTimeNotification
た.
これをテストするのにしばらく時間がかかりました。
なぜこれが起こっているのでしょうか?さらに重要なことは、それを修正する方法は?