2012-02-01 21 views
8

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?

+0

Co to jest IC na swoim kodzie? –

+0

@jeraldov 'mp' to obiekt MediaPlayer, który zostaje przekazany jako parametr do metody onCompletion(). – FoamyGuy

Odpowiedz

10

Jeśli masz tylko jedno wideo do gry, możesz ustawićLooping (true) w swoim przygotowanym słuchaczu.

myVideoView.setOnPreparedListener(new OnPreparedListener() { 

     @Override 
     public void onPrepared(MediaPlayer mp) { 
      // TODO Auto-generated method stub 
      mp.setLooping(true); 

     } 
    }); 

i gotowe.

3

tej pory to:

mp.reset(); 

wewnątrz onComplete zwrotnego wydaje się to naprawić. Byłby bardzo zainteresowany, gdyby ktoś mógł wyjaśnić, co się z nim dzieje.

+1

masz na myśli onCompletion? – Adi