2012-07-11 86 views
3

我有一个AVPlayer用于从网络上流式播放mp3文件。我已经激活AVAudioSession,以便在应用程序退出/屏幕关闭时播放音频。音乐播放完美,但播放音乐时(如iOS中的常见情况),手机顶部的状态菜单中出现的小“播放”三角形图标未出现。我做错了什么?代码如下带AVPlayer的AVAudioSession:状态菜单中的“播放”图标不显示AVPlayer播放器正在播放的时间

// 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); 

回答

2

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

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