0

バックグラウンドだけでなくフォアグラウンドでも完全に動作するオーディオ レコーダーを開発しました。アプリがクラッシュします。そのため、マイクやスピーカーを使用している他のアプリ(ビデオレコーダー、音楽プレーヤー、ビデオプレーヤーなど)がフォアグラウンドで実行されているときに、オーディオレコーダーが自動的に一時停止状態になる機能をオーディオレコーダーに追加したいと思います。よろしくお願いします.

あなたがまだ私の問題を理解していない場合は、家に帰るよりも携帯電話を使用して音楽プレーヤーを再生してください. 音楽プレーヤーが実行されているので、マイクとスピーカーを使用していない別のアプリを開くと、音楽プレーヤーはまだ実行されていますが、マイクとスピーカーを使用している別のアプリ(ビデオレコーダー、音楽プレーヤー、ビデオプレーヤーなど)を開くと、音楽プレーヤーが一時停止します。私が欲しかったこのタイプの機能。

4

2 に答える 2

1

最後に、多くの検索とグーグルで、この質問の答えを得ました。私は audiofocuschangelistener を使用しています。コードはそこにあります

AudioManager.OnAudioFocusChangeListener audioFocusChangeListener = new AudioManager.OnAudioFocusChangeListener() {

        public void onAudioFocusChange(int focusChange) {
            switch(フォーカスチェンジ)
            {
            ケース AudioManager.AUDIOFOOCUS_GAIN:
            ケース AudioManager.AUDIOFOOCUS_GAIN_TRANSIENT:
            ケース AudioManager.AUDIOFOOCUS_GAIN_TRANSIENT_MAY_DUCK:
                  //アクティビティを再開
                   壊す;
            ケース AudioManager.AUDIOFOOCUS_LOSS:
            ケース AudioManager.AUDIOFOOCUS_LOSS_TRANSIENT:
            ケース AudioManager.AUDIOFOOCUS_LOSS_TRANSIENT_CAN_DUCK:
                   ///アクティビティを一時停止
                   壊す;
            }

        }
    };      

onCreate() でこれを行います

AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
int result = audioManager.requestAudioFocus(audioFocusChangeListener, AudioManager.STREAM_MUSIC,AudioManager.AUDIOFOCUS_GAIN_TRANSIENT);
                もし (結果 == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
                    //アクティビティを開始
                }

詳細については、以下のリンクをたどることができます

http://developer.android.com/training/managing-audio/audio-focus.html

于 2012-08-02T06:12:59.857 に答える
0

あなたの質問から私が理解している限り、フォアグラウンド アプリケーションでない場合は、アプリケーションが何をしていても停止する必要があります (おそらく録音?)。

メイン アクティビティのonPauseメソッドをオーバーライドして、アクティビティがバックグラウンドになったとき (新しいアクティビティが開始されたとき) にレコーダーを停止できるようにする必要があります。

さらに、onResumeメソッドをオーバーライドすることで、ユーザーがアプリケーションとの対話を再開したときに、アクティビティのタスクを再開できます。

于 2012-07-31T07:41:15.153 に答える