iPhone - AVAudioPlayer,kAudioSessionCategory_AmbientSound和iPod音乐
题
我用下面的音频会议在我的应用程序委托:
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); }
不隶属于 StackOverflow