我有一个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);
答案 0 :(得分:2)
对于那些可能会遇到这个问题的人,我明白了。你必须让你的玩家的控制器成为第一个响应者 - 特别是对于远程控制事件。这不仅可以让您接收远程控制事件(如通用播放/暂停/前进/后退控制),还可以将播放图标放在状态菜单中。
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
[self becomeFirstResponder];