使用 AVPlayer -> iPhone 播放器控件无法从 url 流式传输广播

Stream radio from url with AVPlayer -> iPhone player controls not working

我使用 AVPlayer 从 url 流式传输现场声音。

它运行完美,除非我的应用程序在后台并且我想在向上滑动菜单中播放或暂停 iPhone 播放器(我不知道它的确切名称)。音量控制有效,但 play/pause 控制无效。

我已经在 SO 和互联网上查找了几个小时,但无法弄明白。

有什么帮助吗?

这是代码(如果您需要更多代码,请不要犹豫):

// Set AudioSession
NSError *sessionError = nil;
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:&sessionError];
[[AVAudioSession sharedInstance] setActive:YES error:nil];

// Init player
self.playerItem = [AVPlayerItem playerItemWithURL:url];
self.audioPlayer = [AVPlayer playerWithPlayerItem:self.playerItem];
[self.audioPlayer play];

您需要自己在您的应用中实现远程控制。这不是由 AVPlayer 处理的。

想要你需要阅读的是Remote Control Events

你需要让一些 class 成为第一响应者,比如你的根视图控制器。通过调用 [self becomeFirstResponder] 确保它正在接收所有事件。 然后只需实现远程控制事件的事件处理程序:

- (void)remoteControlReceivedWithEvent:(UIEvent *)receivedEvent {

    if (receivedEvent.type == UIEventTypeRemoteControl) {
      switch (receivedEvent.subtype) {
         case UIEventSubtypeRemoteControlTogglePlayPause:
            [self playOrStop: nil];
            break;

        case UIEventSubtypeRemoteControlPreviousTrack:
            [self previousTrack: nil];
            break;

        case UIEventSubtypeRemoteControlNextTrack:
            [self nextTrack: nil];
            break;

        default:
            break;
    }
}