質問

私は私のアプリデリゲートに、次のオーディオセッションを使用しています:

  AudioSessionInitialize(NULL, NULL, NULL, self);
  UInt32 sessionCategory = kAudioSessionCategory_AmbientSound;
  AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(sessionCategory), &sessionCategory);

  AudioSessionSetActive(true);

私は私のアプリが出て弓とiPodの音楽を再生することができます...ユーザーがiPodの音楽を再生し、素晴らしいですし、正常に動作同時に、で私のアプリを使用することができるようにしたい。

私がいる問題は、ユーザーが自分のアプリケーションを終了した後、彼らは私のアプリに戻ってきたときに...、iPodのアプリとポーズに入るで、私の音の作品のどれも。それはまだiPodのセッションは、それがどんな音楽を演奏されていなくても、アクティブになって考えてみたいです!

私は基本的にiPodの音楽を一時停止した後、私のオーディオセッションを再度アクティブにします。私はをした後には、現状ではこれまでにのiPodのアプリを経由して音楽を演奏、私は再コンパイルしない限り、私のアプリのバックサウンドを得ることが全くできません。 :(誰もが任意のアイデアがありますか?

編集:私は、私は私のアプリのオーディオを再生するAVAudioPlayerクラスの基本的な実装を使用しています言及するのを忘れていました。

ありがとうございます。

役に立ちましたか?

解決

オーケーちょうど私はそれが他の誰かを助けた場合に掲載皆を保つだろうと思って...私がやったことは、おそらく種類のハックだったが、トリックを行うようだ!

    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