2013-10-31 50 views
0

我有一个通过流媒体播放音乐的iOS应用程序,它在iPhone中很棒。但我在iPad上遇到问题。 我的问题是,在播放歌曲时,屏幕自动锁定当前歌曲正在播放但未播放下一首歌曲。如果我手动锁定设备,则下一首歌曲播放正确。 我在执行audioPlayerDidStartPlaying委托时记录日志,所以我知道它已被执行,但我什么也听不到。 我从iPad的日志中得到了这个。当设备自动锁定时,AVPlayer不能在iPad上工作

Oct 31 13:48:41 mediaserverd[1891] <Notice>: 13:48:41.634 NOTE:  [0x4150000] <aqme> MEMixerChannel.cpp:777: EnableProcessor: EQ not supported for 2e+04 Hz 
Oct 31 13:48:44 mediaserverd[1891] <Notice>: 13:48:44.331 NOTE:  [0x4150000] <aqme> MEMixerChannel.cpp:777: EnableProcessor: EQ not supported for 2e+04 Hz 
Oct 31 13:48:44 mediaserverd[1891] <Warning>: 13:48:44.334 [0x4150000] TranslateCMSessionErrorCode: AudioSessionSetClientPlayState: WARNING translating CMSession error: -16980 
Oct 31 13:48:44 mediaserverd[1891] <Error>: 13:48:44.335 ERROR:  [0x4150000] AQServer.cpp:150: SetSessionPlayState: AudioQueue: Error '!pla' from AudioSessionSetClientPlayState(0x76358a) 

我有我的应用程序委托:

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

// Change the default output audio route 
UInt32 doChangeDefaultRoute = 1; 
AudioSessionSetProperty(kAudioSessionProperty_OverrideCategoryDefaultToSpeaker, 
          sizeof(doChangeDefaultRoute), &doChangeDefaultRoute); 

而且我在Info.plist文件中定义的“所需的背景模式”属性设置为“应用程序播放音频”。

在iPhone正常工作,所以任何想法是我的问题在哪里?

在先进的感谢,

回答

1

尝试注册用于远程控制的事件......

[[UIApplication sharedApplication] beginReceivingRemoteControlEvents]; 

虽然似乎有什么用它做它不中,AVPlayer等球员状态似乎如果您的应用程序未获取遥控器,则播放失败。

在您的应用程序委托,响应遥控器通过这样的事情:

-(void)remoteControlReceivedWithEvent:(UIEvent *)event 
{ 
    switch(event.subtype) 
    { 
     case UIEventSubtypeRemoteControlPause: 
      [self pause]; 
      break; 
     case UIEventSubtypeRemoteControlPlay: 
      [self play]; 
      break; 

    } 
} 
相关问题