我在我的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 次 |
| 最近记录: |