2012-10-22 8 views
5

Chcę odtworzyć 2 filmy z rzędu. Pierwsze wideo zawsze gra dobrze. Po zakończeniu można zobaczyć w dzienniku, że ustawia nowy adres URL wideo, ale następnie SurfaceView zgłasza błąd i VideoView po prostu zawiesza się z ostatnią klatkę pierwszego wideo. Nic więcej się nie dzieje. Jakieś myśli? Dzięki !Android VideoView nie odtwarza sekwencyjnych filmów wideo

LE: Zaskakująco, OnPreparedListener zostaje wezwany do drugiego wideo.

LE2: Czasami drugi film gra się dobrze, czasami nie ... i nie zmieniłem linii kodu pomiędzy kiedy zadziałał, a kiedy nie. To czysto przypadkowy ...

LE3: Szybkie rozwiązanie jest dodać tę linię przed ustawieniem nowego adresu URL wideo:

mVideoView.setVisibility(View.GONE); 

kod z OnCompletionListener:

setCurrentPlaybackUrl(); // sets mCurrentMediaUrl to the second video URL 
mVideoView.setVideoPath(mCurrentMediaUrl); 
mVideoView.start(); 

To jest wyjście, gdy log pierwszy film zakończy odtwarzanie:

10-22 12:32:35.762: I/AwesomePlayer(126): setDataSource_l('https://xx/TestingVideo_lo.mp4') 
10-22 12:32:35.762: E/BufferQueue(123): [SurfaceView] connect: already connected (cur=3, req=3) 
10-22 12:32:35.762: E/MediaPlayerService(126): setVideoSurfaceTexture failed: -22 
10-22 12:32:35.762: E/BufferQueue(123): [SurfaceView] connect: already connected (cur=3, req=3) 
10-22 12:32:35.762: E/MediaPlayerService(126): setVideoSurfaceTexture failed: -22 

Odpowiedz

4

Spróbuj na onCompletion(MediaPlayer mp), t o dodaj mp.stop(), a następnie zrób swoje rzeczy.

EDIT: Próbowałem to i to działa:

videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { 
@Override 
public void onCompletion(MediaPlayer mp) { 
     play_video(); 
} 
}); 

play_video(); 

gdzie play_video jest następująca metoda:

void play_video() { 
    Uri uri = Uri.parse(video_link); 
    videoView.setVideoURI(uri);  
    videoView.requestFocus(); 
    videoView.setVisibility(View.VISIBLE); 
    videoView.start(); 

} 

Jedyną różnicą jest to, że grałem ten sam film dwa razy, a nie dwa różne filmy wideo.

+0

Nic się nie zmieniło. –

+1

Czasami drugi film gra się dobrze, czasami nie ... i nie zmieniłem linii kodu między kiedy zadziałał, a kiedy nie. To czysto losowe ... –

+0

0/3 udanych prób z 2 różnymi adresami URL. 1/3 udanych prób z tym samym adresem URL. Idę zwariować ... –