与AVPlayer的AVAudioSession:' Play'状态菜单中的图标在AVPlayer播放器播放时未显示

时间:2012-07-11 22:39:32

标签: ios audio background avplayer avaudiosession

我有一个AVPlayer来从网络流式传输mp3文件。我已激活AVAudioSession,以便在退出应用程序/关闭屏幕时播放音频。音乐播放效果非常好,但播放音乐时手机顶部状态菜单中出现的小“播放”三角形图标不会出现(就像iOS中的常见情况一样)。我做错了什么?代码

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

//Direct audio to speakers when there is no headphone
UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback;
AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(sessionCategory), &sessionCategory);    
UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;
AudioSessionSetProperty (kAudioSessionProperty_OverrideAudioRoute,sizeof (audioRouteOverride),&audioRouteOverride);

1 个答案:

答案 0 :(得分:2)

对于那些可能会遇到这个问题的人,我明白了。你必须让你的玩家的控制器成为第一个响应者 - 特别是对于远程控制事件。这不仅可以让您接收远程控制事件(如通用播放/暂停/前进/后退控制),还可以将播放图标放在状态菜单中。

[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
[self becomeFirstResponder];