2017-05-18 10 views
0

현재 기본 음악 플레이어에 URL을 지정하려면 FFmpegMediaPlayer로 작업하고 있습니다. 나는 일할 수있는 기본적인 기능을 가지고있다. 오류가 발생하면 오류 메시지가 표시되고, 그렇지 않으면 노래가 재생됩니다. 내가 직면 한 문제는 일단 플레이어가 시작되면 Wi-Fi 및 전화 데이터를 끄고 소리가 멈추는 것입니다. Wi-Fi 또는 전화 데이터를 다시 전송하면 플레이어가 계속 진행되지만 간단하게 중지됩니다. 나는 멈추어 서 그것을 계속 연주해야한다.FFmpegMediaPlayer가 네트워크를 껐다 켰을 때 멈 춥니 다.

FFmpegMediaPlayer가 스트리밍을 계속할 수있는 방법이 있습니까?

이것은 내가 선수 초기화하는 무슨 :

mMediaPlayer = new FFmpegMediaPlayer(); 
    mMediaPlayer.setOnErrorListener(this); 
    mMediaPlayer.setOnPreparedListener(this); 
    mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); 
    mMediaPlayer.setOnBufferingUpdateListener(this); 
    mMediaPlayer.setOnSeekCompleteListener(this); 

    try { 
     Uri uri = Uri.parse(radio_url); 
     mMediaPlayer.setDataSource(mMainActivity, uri); 
     mMediaPlayer.prepareAsync(); 
    } catch (IllegalArgumentException e) { 
     e.printStackTrace(); 
    } catch (SecurityException e) { 
     e.printStackTrace(); 
    } catch (IllegalStateException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

가 그럼 난 재생/정지 버튼을 클릭했을 때 처리하는 기능을 가지고 :

@Override 
public void onPlayButtonClicked(Button button) { 

    if (radioInitialized) { 
     mAnalytics.onStopButtonClicked(); 
     mMainLayout.loading(false); 
     mMediaPlayer.pause(); 
    button.setBackground(mMainActivity.getResources().getDrawable(R.drawable.play_button)); 
     radioInitialized = false; 
    } else { 
     mAnalytics.onPlayButtonClicked(); 
     mMainLayout.loading(true); 
     initRadio(); 
     button.setBackground(mMainActivity.getResources().getDrawable(R.drawable.stop_button)); 
     radioInitialized = true; 
    } 
} 

을 다시를 기본 기능이 작동, 하지만 Wi-Fi가 다시 켜진 후에 스트리밍을 계속하고 싶습니다.

답변

0

해결책을 찾았습니다.

나의 주요 목표는 라디오와 같은 미디어 플레이어를 만드는 것이 었습니다.

MediaPlayer를 사용해 보았지만 제대로 작동하지만 자주 멈추는 경향이 있습니다.

나는 그 때 vitamio와 FFmpegMediaPlayer를 시도했다. Vitamio는 혼란스럽고 FFmpegMediaPlayer는 스트리밍 오류를 지원하지 않습니다.

현재 Google의 Exo Player로 작업하고 있습니다. 여기에 아주 좋은 안내서가 있습니다. https://codelabs.developers.google.com/codelabs/exoplayer-intro/index.html?index=..%2F..%2Findex#0