2017-11-24 8 views
0

メディアプレーヤーを使用して音声ファイルを再生するためのアンドロイドアプリケーションを作成しましたが、他のオーディオ/同時に。他のビデオ/オーディオがアンドロイドで再生を開始するとメディアプレーヤーを停止する方法

別のオーディオ/ビデオを開始する前に、最初のオーディオを停止する方法はありますか?

他のオーディオの開始時に呼び出される放送受信機はありますか?

私が使用している -

mediaPlayer.play()をオーディオを再生します。

およびmediaPlayer.pause()音声を一時停止する。

ご協力いただければ幸いです。

+0

アプリケーションのmediaPlayerにはシングルインスタンスを使用してください。 – ADM

+0

@ADM私は1つのインスタンスだけを使用していますが、ビデオを開始すると私のオーディオも再生します – Ragini

+0

[AudioManager](https://developer.android.com/reference/android/media/AudioManager.html)をモードで使用してください。 – ADM

答えて

0

AudioManagerサービスを使用して、オーディオのフォーカスを受信/損失したかどうかを通知する必要があります(Managing audio focus)。 (アクティビティやサービスのような)メディア再生を制御している次のコードを使用してください。 -

// Add this code in a method 

AudioManager am = null; 

// Request focus for music stream and pass AudioManager.OnAudioFocusChangeListener 
// implementation reference 
int result = am.requestAudioFocus(this, AudioManager.STREAM_MUSIC, 
       AudioManager.AUDIOFOCUS_GAIN); 

if(result == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) 
{ 
    // Play 
} 

// Implements AudioManager.OnAudioFocusChangeListener 

@Override 
public void onAudioFocusChange(int focusChange) 
{ 
    if(focusChange == AudioManager.AUDIOFOCUS_LOSS_TRANSIENT) 
    { 
     // Pause 
    } 
    else if(focusChange == AudioManager.AUDIOFOCUS_GAIN) 
    { 
     // Resume 
    } 
    else if(focusChange == AudioManager.AUDIOFOCUS_LOSS) 
    { 
     // Stop or pause depending on your need 
    } 
} 
0

メディアプレイヤーは再生する責任があります。 AudioManagerは、音量とリンガーモードのコントロールを提供します。前のコードを停止して次のコードを再生するには次のコードを試してください:

if (mediaplayer != null) 
     if (mediaplayer.isplaying()) { 
      mediaplayer.stop(); 
      // start your new audio 
     } else { 
      // start your new audio 
     } 
関連する問題