2012-07-11 82 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];