2017-04-10 11 views
0

Nothing입니다. Media Player로 서비스에서 오디오 스트림을 재생할 때 이상한 일이 발생했습니다. 내 오디오 스트림 URL은 입니다. http://7xk2r8.com1.z0.glb.clouddn.com/rNeDSn1Octc 나는이 같은 MediaPlayer를 함께 사용 :Android MediaPlayer에서 오디오 파일을 온라인으로 재생할 수 없지만 로컬에서 동일한 오디오 파일을로드하는 경우 제대로 작동합니다.

onCompleteListener 즉시

를 호출 할 것입니다하지만 안드로이드 장치에 대한 URL 위의 파일을 다운로드하고, MediaPlayer를 사용하는 경우 다음과 같은 지역에서로드 할

mediaPlayer.setDataSource("http://7xk2r8.com1.z0.glb.clouddn.com/rNeDSn1Octc") 

:

mediaPlayer.setDataSource("local path") 

모두 정상적으로 작동합니다.

나는 스트림 파일 자체에서 버그가 올 수 있다고 생각하지만 왜 그런지 모르겠다. 약 2 주 동안 도움이되지 않았다 !!!!!!

추신 : MediaPlayer에서 가장 간단한 코드를 사용 했으므로 코드가 좋다고 생각합니다. 오디오 스트림 파일 자체의 버그가 파일을 테스트 할 수 있습니까? 위의 파일 URL은 완전히 공개됩니다. 감사!

+0

mediaPlayer 시작 직후에 onCompleteListener가 호출됩니다. – Bruce

+0

안드로이드 버전은 22입니다. – Bruce

답변

0

같은 문제가 있습니다. Mediaplayer가 네트워크 프록시 등의 원인을로드 할 수없는 경우가 있습니다. prepareAsync()를 호출 할 수 있지만 onPrepared()를 호출하지 않습니다. 따라서 다음과 같은 부울 값 플래그를 추가합니다.

@Override 
public void onPrepared(MediaPlayer mp) { 
    isPrepared = true;} 

@Override 
public void onCompletion(MediaPlayer mp) { 
    if(isPrepared) {// Do your code}