Как воспроизвести видео файл в Android? - PullRequest
14 голосов
/ 18 мая 2011

Я поместил видео MP4 в мое доменное пространство. У меня есть общедоступный URL, теперь я хочу воспроизвести его в своем приложении для Android; но не знаю, как я могу это сделать. Я использовал следующий код, который не работает. Контроллер трека движется, но я не вижу видео на экране.

public class MPlayer extends Activity{
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.playvideo);
    VideoView videoView = new VideoView(MPlayer.this);
    videoView.setMediaController(new MediaController(this));
    videoView.setVideoURI(Uri.parse("http://www.semanticdevlab.com/abc.mp4"));
    videoView.requestFocus();
    videoView.start();
    LinearLayout l = (LinearLayout)findViewById(R.id.mplayer);
    l.addView(videoView);
}
}

Ответы [ 5 ]

14 голосов
/ 26 сентября 2012

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

Код:

videoView = (VideoView)findViewById(R.id.ViewVideo);
videoView.setVideoURI(Uri.parse(“android.resource://” + getPackageName() +”/”+R.raw.video));
videoView.setMediaController(new MediaController(this));
videoView.requestFocus();
videoView.start();

, если вы хотите увидеть исходный код: Воспроизвести видеофайл с помощью VideoView в Android

6 голосов
/ 18 мая 2011

Я думаю, что это может помочь вам найти какое-то решение.

mp=new MediaPlayer();                    
mp.setDataSource(path);
mp.setScreenOnWhilePlaying(true);
mp.setDisplay(holder);
mp.prepare();
mp.start();
6 голосов
/ 18 мая 2011

Большую часть времени я использую следующий код:

MediaPlayer mp = new MediaPlayer();
    mp.setDataSource(PATH_TO_FILE);
    mp.prepare();
    mp.start();

для получения дополнительной информации смотрите на этой странице: http://developer.android.com/guide/topics/media/index.html а также http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/media/MediaPlayerDemo_Video.html

3 голосов
/ 18 мая 2011

Если вы пытаетесь сделать это в своем эмуляторе, вам, возможно, придется попробовать это на реальном устройстве, потому что иногда я тоже сталкиваюсь с той же проблемой. Я не смогу просматривать видео в эмуляторе, но видео будет воспроизводиться без проблем на мобильном телефоне. проблема, я думаю, с эмулятором, а не с вашим кодом.

0 голосов
/ 21 декабря 2017

Вы должны сделать это в onResume, потому что в onCreate VideoView не знает его размера и не может правильно создать поверхность для отображения видео.

public class MPlayer extends Activity{

VideoView videoView;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.playvideo);
    videoView = new VideoView(MPlayer.this);
    videoView.setMediaController(new MediaController(this));
    LinearLayout l = (LinearLayout)findViewById(R.id.mplayer);
    l.addView(videoView);
   }

    @Override
    protected void onResume() {
        super.onResume();
videoView.setVideoURI(Uri.parse("http://www.semanticdevlab.com/abc.mp4"));
        videoView.start();
}
...