AVAudioPlayer在locking屏幕上
我已经使用AVAudioPlayer
(而不是AVPlayer
)实现了一个audio播放器。 我可以用下面的方法处理远程控制事件。 到目前为止,它工作得很好,但是我看到这些事件UIEventSubtypeRemoteControlEndSeekingForward
两个subtypes
: UIEventSubtypeRemoteControlEndSeekingForward
和UIEventSubtypeRemoteControlEndSeekingBackward
。
- (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. } }
所以问题:
-
为了让事情正确,我是否也应该实施这两个亚型呢?
-
此方法仅在locking屏幕上启用
rewind
,play/pause
和fast forward
button,但不显示文件标题,图稿和持续时间。 我怎样才能使用AVAudioPlayer
或AVAudioSession
显示该信息(我真的不希望有更多的库/ API来实现这一点)?2-A。 我在search时发现了
MPNowPlayingInfoCenter
我不太了解。 我必须用它来实现上面的这些东西吗? : – [
你是正确的, MPNowPlayingInfoCenter
是唯一的方法来做到这一点。 所以继续和MediaPlayer.framework
链接。 在处理播放音轨的类中,导入<MediaPlayer/MediaPlayer.h>
。 每当你的轨道改变,做到这一点:
NSDictionary *info = @{ MPMediaItemPropertyArtist: artistName, MPMediaItemPropertyAlbumTitle: albumName, MPMediaItemPropertyTitle: songName }; [MPNowPlayingInfoCenter defaultCenter].nowPlayingInfo = info;