2010-07-13 2 views
0

Использование:Видео играет только первые 5 секунд

private void play() { 
    VideoView v = (VideoView) findViewById(R.id.videoView); 
    MediaPlayer mp = MediaPlayer.create(this, R.raw.video); 
    mp.setDisplay(v.getHolder()); 
    mp.start(); 
} 

Мое видео воспроизводится только около 5 первых секунд, и остаться, как остановился .. почему это происходит? Это что-то связано с буфером? (Я играю локальный ресурс)

-

Я попробовал другой 3gp видео, и та же проблема происходит.

ответ

0

Рабочий код (возможно, была какая-то проблема с чрезмерным использованием ресурсов):

private void play() throws Exception { 
    v = (VideoView) findViewById(R.id.videoView); 
    if (!firstPlay) { 
     mp.release(); 
    } 
    mp = MediaPlayer.create(this, R.raw.video); 
    mp.setDisplay(v.getHolder()); 
    mp.start(); 
    firstPlay = false; 
} 
+0

пытается вернуть первый код, требуется немного больше времени, чтобы остановиться, я действительно думаю, из-за чрезмерного использования ресурсов на моих многочисленных играх .. –

0

Сочетание VideoView и MediaPlayer может оказаться неправильным. VideoView использует свой собственный MediaPlayer. Либо use VideoView by itself, либо use a combination of MediaPlayer and SurfaceView.

+0

Кроме того, воспроизведение видео на эмуляторе не стремится хорошо работать, если у вас есть очень быстрый компьютер. – CommonsWare

+0

На самом деле у меня очень быстрое четырехъядерное ядро. Кстати, как воспроизвести видео с помощью MediaControler вашего примера? –

+0

@Tom Brito: Чтобы воспроизвести образец «VideoView», нажмите верхнюю часть экрана, чтобы вызвать «MediaController», или добавьте вызов 'play()' в конце процесса установки. Чтобы воспроизвести пример «MediaPlayer», вы должны получить поле URL-адреса при запуске приложения, чтобы ввести путь к потоковому видеоролику для тестирования. – CommonsWare