2017-11-24 21 views
0

미디어 플레이어를 사용하여 음성 파일로 텍스트를 재생하는 안드로이드 응용 프로그램을 만들었지 만 다른 오디오/비디오가 재생되기 시작하면 내 오디오도 재생됩니다. 즉 두 개의 오디오가 재생됩니다 동시에.다른 비디오/오디오가 android에서 재생되기 시작하면 미디어 플레이어를 중지하는 방법

다른 오디오/비디오를 시작하기 전에 첫 번째 오디오를 중지 할 수있는 방법이 있습니까?

다른 오디오의 시작 부분에서 호출되는 브로드 캐스트 수신기가 있습니까?

은 내가 사용했던 -

mediaPlayer.play() 오디오를 재생합니다.

mediaPlayer.pause() 오디오를 일시 중지합니다.

도움을 주시면 감사하겠습니다.

+0

응용 프로그램의 mediaPlayer에 단일 인스턴스를 사용하십시오. – ADM

+0

@ADM 단일 인스턴스 만 사용하고 있지만 비디오를 시작한 다음 오디오도 재생합니다. – 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 
     }