我用下面的音频会议在我的应用程序委托:

  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);
    }

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top