Как отобразить видео в эмуляторе Android с удаленного URL? - PullRequest
2 голосов
/ 15 сентября 2009

Я использую следующий код для отображения видеофайла в эмуляторе Android, он прекрасно работает, когда видеофайл хранится на SD-карте. Но когда я даю любой URL-адрес видео, код не работает.

import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.SurfaceHolder;
import android.view.View;
import android.widget.*;

public class playerActivity extends Activity 
{
Button b;
VideoView preview;
SurfaceHolder holder;
MediaPlayer mp;

 private String path = "/data/data/payoda.android/funny.mp4";

//private String path = "http://www.daily3gp.com/vids/3.3gp";

public void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    preview=(VideoView)findViewById(R.id.surface);
    holder=preview.getHolder();
    b=(Button)findViewById(R.id.cmd_play);
    b.setOnClickListener(new View.OnClickListener()
    {
    public void onClick(View v)
    {
        try
        {
                mp=new MediaPlayer(); 
                mp.setDataSource(path);
                mp.setScreenOnWhilePlaying(true);
                mp.setDisplay(holder);
                mp.prepare();
                mp.start();
        }
        catch(Exception e)
        {

        }
    }
    });
}
}

Исключением является:

prepare failed:
status=0xC8

Данные LogCat:

09-16 12:16:36.729: ERROR/PlayerDriver(542): Command PLAYER_INIT completed with an error or info PVMFErrContentInvalidForProgressivePlayback
09-16 12:16:36.739: ERROR/MediaPlayer(2867): error (200, -27)

В приведенном выше коде, если изменить переменную пути, экран эмулятора будет черным с одной кнопкой. Возможно, мне придется сделать еще несколько вещей, чтобы отобразить видео с удаленного URL, я не знаю, что делать. Идея об этом, пожалуйста, помогите Мне.

Ответы [ 3 ]

4 голосов
/ 15 сентября 2009

Во-первых, не используйте эмулятор для тестирования воспроизведения видео. Его способность обрабатывать видео очень ограничена. Используйте реальное устройство Android.

Во-вторых, всегда проверяйте LogCat (adb logcat, перспектива DDMS или DDMS в Eclipse) на наличие предупреждений при возникновении проблем с мультимедиа. OpenCORE - мультимедийный движок, используемый Android - имеет тенденцию регистрировать состояния уровня ошибок как предупреждения.

Например, ваш видеофайл может быть не настроен для прогрессивной загрузки, что требуется для потоковой передачи по HTTP. В Linux вы можете исправлять видео MP4 для прогрессивной загрузки, установив MP4Box и запустив MP4Box -hint <file>.

2 голосов
/ 19 декабря 2010

вы должны создать SDCard в вашем симуляторе а затем измените вид окон затмения на DDMS измените путь к mnt / sdcard и вставьте файл на устройство кнопка действия находится справа от DDMS, это значок телефона

затем измените свой путь .java

private String path = "mnt/sdcard/funny.mp4";

Вы должны работать над этим.

0 голосов
/ 17 сентября 2009

Вы должны также использовать метод prepareAsync () вместо prepare (). Использование prepare () является блокирующим вызовом (пользовательский интерфейс блокируется), а prepareAsync не является блокирующим вызовом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...