Nee*_*eku 7 avaudioplayer ios avaudiosession background-audio mpnowplayinginfocenter
我使用AVAudioPlayer(不是AVPlayer)实现了一个音频播放器.我可以使用以下方法处理远程控制事件.它的工作原理相当好的,到目前为止,但是我看到两个以上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.
}
}
Run Code Online (Sandbox Code Playgroud)
所以问题:
为了使事情正常,我是否应该实施这两种子类型?
此方法仅使rewind,play/pause和fast forward锁定屏幕上的按钮,但它不显示文件标题,艺术作品,和持续时间.如何使用AVAudioPlayer或显示该信息AVAudioSession(我真的不想再使用一个库/ API来实现)?
2-A.我MPNowPlayingInfoCenter在搜索时发现,我对此并不了解.我是否必须使用它来实现上述内容?: - [
Pat*_*ley 10
你是对的,MPNowPlayingInfoCenter是唯一的方法.所以继续和链接MediaPlayer.framework.在处理播放曲目的类中,导入<MediaPlayer/MediaPlayer.h>.每当您的曲目更改时,请执行以下操作:
NSDictionary *info = @{ MPMediaItemPropertyArtist: artistName,
MPMediaItemPropertyAlbumTitle: albumName,
MPMediaItemPropertyTitle: songName };
[MPNowPlayingInfoCenter defaultCenter].nowPlayingInfo = info;
Run Code Online (Sandbox Code Playgroud)