このストリームを開始して Wi-Fi をオフにすると、「playbackBufferEmpty」が発生し、ストリームを再起動して応答できます。ただし、wifi をオフにしてすぐに再度オンにすると、ストリームの再生は停止しますが、オブザーバーはトリガーされません。
- (void)restartStream
{
[self.activityIndicator startAnimating];
NSLog(@"Removing Observers");
[self.radioStream removeObserver:self forKeyPath:@"status"];
[self.radioStream removeObserver:self forKeyPath:@"timedMetadata"];
[self.radioStream removeObserver:self forKeyPath:@"playbackBufferEmpty"];
[self.radioStream removeObserver:self forKeyPath:@"playbackLikelyToKeepUp"];
NSLog(@"Creating New AVPlayerItem");
self.radioStream = [AVPlayerItem playerItemWithURL:[NSURL URLWithString:@"http://mystream.com"]];
[self.radioStream addObserver:self forKeyPath:@"status" options:0 context:nil];
[self.radioStream addObserver:self forKeyPath:@"timedMetadata" options:NSKeyValueObservingOptionNew context:nil];
[self.radioStream addObserver:self forKeyPath:@"playbackBufferEmpty" options:NSKeyValueObservingOptionNew context:nil];
[self.radioStream addObserver:self forKeyPath:@"playbackLikelyToKeepUp" options:NSKeyValueObservingOptionNew context:nil];
NSLog(@"Playing radioPlayer with new AVPlayerItem");
self.radioPlayer = [AVPlayer playerWithPlayerItem:self.radioStream];
}