我在我的app委托中使用以下音频会话:
AudioSessionInitialize(NULL, NULL, NULL, self); UInt32 sessionCategory = kAudioSessionCategory_AmbientSound; AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(sessionCategory), &sessionCategory); AudioSessionSetActive(true);
我希望用户能够播放iPod音乐并同时使用我的应用程序,这很棒,工作正常...我的应用程序退出并允许iPod音乐播放.
我遇到的问题是...在用户退出我的应用程序后,进入iPod应用程序并暂停,当他们回到我的应用程序时,我的声音都没有用.就像它仍然认为iPod会话是活跃的,即使它没有播放任何音乐!
我基本上只是想在iPod音乐暂停后重新激活我的音频会话.既然这样,以后我曾经通过iPod应用程序播放的音乐,我完全无法让我的应用程序的声音回来,除非我重新编译.:( 有人有主意吗?
编辑:我忘了提到我正在使用AVAudioPlayer类的基本实现来播放我的应用程序的音频.
谢谢!
好吧,我只是想让每个人都贴出来,以防它帮助其他人......我所做的可能是一种hackish,但似乎可以做到这一点!
UInt32 isPlaying; UInt32 propertySize = sizeof(isPlaying); OSStatus status; // check to see if their iPod music is playing status = AudioSessionGetProperty(kAudioSessionProperty_OtherAudioIsPlaying, &propertySize, &isPlaying); // set the session category accordingly if(!isPlaying) { NSLog(@"...SoloAmbientSound"); UInt32 sessionCategory = kAudioSessionCategory_SoloAmbientSound; AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(sessionCategory), &sessionCategory); }else{ NSLog(@"...AmbientSound"); UInt32 sessionCategory = kAudioSessionCategory_AmbientSound; AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(sessionCategory), &sessionCategory); }
归档时间: |
|
查看次数: |
4523 次 |
最近记录: |