나는 이것을 알아 내려고 많은 시간을 보냈다 :미디어를 처음 재생할 때 MediaPlayer OnCompletion이 실행되는 이유는 무엇입니까?
MediaPlayer가 처음으로로드되고 시작될 때, 그 OnCompletion이 호출된다. 이전 트랙이 끝났을 때 다음 트랙으로 건너 뛰는 코드가 있기 때문에 이것은 문제입니다.
OnCompletion 수신기의 플래그를 사용하여 해결했지만 그 이유는 무엇입니까? , onCompletion이 바로이 후 재생되는 첫 번째 트랙은 비록 방법() 플레이에서 반환 한 후 호출 할 어떤 이유
mp.setDataSource(mCurrentMediaFile);
mp.prepare();
mDuration = mp.getDuration();
int seek = mDuration * position/1000;
mp.seekTo(seek);
mp.start();
:
이 조각은 내 서비스에서 플레이() 메소드에서입니다 서비스가 생성됩니다.
안녕하세요, 여기에 문제가 있다는 것을 알았습니까? 나는 비슷한 문제가있다. OnComletion은 mp.reset() 후에 호출됩니다. – vandzi
@vandzi : 아니요. onCompletion 핸들러에서 플래그로 해결 방법을 사용합니다. 또한 시간을 확인할 수 있으므로 시작 (또는 재설정) 후 핸들러가 500msec로 호출되면 코드를 건너 뜁니다. – marlar