AVAudioPlayer在locking屏幕上

我已经使用AVAudioPlayer (而不是AVPlayer )实现了一个audio播放器。 我可以用下面的方法处理远程控制事件。 到目前为止,它工作得很好,但是我看到这些事件UIEventSubtypeRemoteControlEndSeekingForward两个subtypesUIEventSubtypeRemoteControlEndSeekingForwardUIEventSubtypeRemoteControlEndSeekingBackward

 - (void)remoteControlReceivedWithEvent:(UIEvent *)event { //if it is a remote control event handle it correctly if (event.type == UIEventTypeRemoteControl) { if (event.subtype == UIEventSubtypeRemoteControlPlay) { [self playAudio]; } else if (event.subtype == UIEventSubtypeRemoteControlPause) { [self pauseAudio]; } else if (event.subtype == UIEventSubtypeRemoteControlTogglePlayPause) { [self togglePlayPause]; } else if (event.subtype == UIEventSubtypeRemoteControlBeginSeekingBackward) { [self rewindTheAudio]; //this method rewinds the audio by 15 seconds. } else if (event.subtype == UIEventSubtypeRemoteControlBeginSeekingForward) { [self fastForwardTheAudio]; //this method fast-forwards the audio by 15 seconds. } } 

所以问题:

  1. 为了让事情正确,我是否也应该实施这两个亚型呢?

  2. 此方法仅在locking屏幕上启用rewindplay/pausefast forwardbutton,但不显示文件标题,图稿和持续时间。 我怎样才能使用AVAudioPlayerAVAudioSession显示该信息(我真的不希望有更多的库/ API来实现这一点)?

    2-A。 我在search时发现了MPNowPlayingInfoCenter我不太了解。 我必须用它来实现上面的这些东西吗? : – [

你是正确的, MPNowPlayingInfoCenter是唯一的方法来做到这一点。 所以继续和MediaPlayer.framework链接。 在处理播放音轨的类中,导入<MediaPlayer/MediaPlayer.h> 。 每当你的轨道改变,做到这一点:

 NSDictionary *info = @{ MPMediaItemPropertyArtist: artistName, MPMediaItemPropertyAlbumTitle: albumName, MPMediaItemPropertyTitle: songName }; [MPNowPlayingInfoCenter defaultCenter].nowPlayingInfo = info;