2009-05-16 4 views
1

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クラスの基本的な実装を使用しています言及するのを忘れてしまった

おかげ

答えて

7

わかりましたが、ちょうど私がしようと思いました。!それは私がやったことは、おそらく種類のハックだった...誰か他の人に役立ちますが、トリックを行うように見える場合には、誰もが掲載さキープ!

 

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

+2

ちょうど今、私はまったく同じことを説明し、このAppleの公式ビデオクリップを見つけることが起こりました私がやっていること!知っておいて!http://developer.apple.com/videos/iphone /#video-advanced-audiodev – taber

関連する問題