Mam aplikacji z VideoView, w celu jak odtwarzanie wideo na pętli używam onCompletionListner zadzwonić setVideoPath() znowu coś takiego:Android VideoView powtórzenie
mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer arg0) {
mVideoView.start();
}
});
mVideoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
public void onCompletion(MediaPlayer mp) {
//I have a log statment here, so I can see that it is making it this far.
mp.reset(); // <--- I added this recently to try to fix the problem
mVideoView.setVideoPath(file.getAbsolutePath());
}
});
Ta konfiguracja działa dobrze na wszystkie urządzenia, na które natknąłem się dotychczas, nigdy nie miałem żadnych problemów z tym, że się nie powtórzyły.
Jednak Motorola Xoom, na którym testuję, została niedawno zaktualizowana do wersji ICS. Teraz na ICS będzie działać przez pewien czas i zapętli wideo. Ale w końcu (dodałem licznik i trochę Logów, nie wydaje się, aby istniał jakiś wzór, ile razy uda się z powodzeniem wykonać pętlę przed zatrzymaniem), po czym przestanie się zapętlać i po prostu usiądzie na zawieszonej klatce pierwszej klatki filmu.
Czy ktoś wie, co może spowodować, że nie będzie już pętli poprawnie? Czy ktoś wie o inny sposób, aby uzyskać VideoView do pętli prawidłowo, który działa w ramach ICS nadal?
Co to jest IC na swoim kodzie? –
@jeraldov 'mp' to obiekt MediaPlayer, który zostaje przekazany jako parametr do metody onCompletion(). – FoamyGuy