1

アプリのデリゲートで次のオーディオ セッションを使用しています。

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

  AudioSessionSetActive(真);

私は、ユーザーが iPod の音楽を再生しながらアプリを同時に使用できるようにしたいと考えています。

私が抱えている問題は... ユーザーがアプリを終了し、iPod アプリに入って一時停止した後、アプリに戻ったときに、サウンドがまったく機能しないことです。音楽を再生していなくても、iPod セッションがアクティブであると認識しているようです。

基本的に、iPod の音楽を一時停止した後でオーディオ セッションを再開したいだけです。現状では、iPod アプリを介して音楽を再生した後は、再コンパイルしない限り、アプリのサウンドを元に戻すことはまったくできません:(誰かアイデアはありますか?

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

ありがとう!

4

1 に答える 1

7

他の誰かを助けるために、みんなに投稿し続けようと思っただけです...私がしたことはおそらくハックのようなものでしたが、うまくいくようです!

    UInt32 isPlaying;
    UInt32 propertySize = sizeof(isPlaying);
    OSStatus ステータス。

    // iPod の音楽が再生されているかどうかを確認します
    status = AudioSessionGetProperty(kAudioSessionProperty_OtherAudioIsPlaying, &propertySize, &isPlaying);

    // それに応じてセッション カテゴリを設定します
    if(!isPlaying) {
      NSLog(@"...SoloAmbientSound");
      UInt32 sessionCategory = kAudioSessionCategory_SoloAmbientSound;
      AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(sessionCategory), &sessionCategory);
    }そうしないと{
      NSLog(@"...AmbientSound");
      UInt32 sessionCategory = kAudioSessionCategory_AmbientSound;
      AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(sessionCategory), &sessionCategory);
    }

于 2009-07-04T05:03:10.213 に答える