Подтвердить что ты не робот

Как играть в видеофайл в Android?

Я помещаю видео 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);
}
}
4b9b3361

Ответ 1

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

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

Ответ 2

Класс 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

Ответ 3

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

mp=new MediaPlayer();                    
mp.setDataSource(path);
mp.setScreenOnWhilePlaying(true);
mp.setDisplay(holder);
mp.prepare();
mp.start();

Ответ 4

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

Ответ 5

Вы должны сделать это в 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();
}