Как воспроизвести локальный видеофайл

Я пытаюсь воспроизвести видео, но ничего не происходит:

Log.v("MyApp", "PATH : " + videoPath);

LinearLayout linearLayout = new LinearLayout(mContext);

LayoutParams videoView_LP = new LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);

VideoView videoView = new VideoView(RevLibGenConstantine.REV_CONTEXT);
videoView.setLayoutParams(videoView_LP);

videoView.setVideoPath(videoPath);
videoView.requestFocus();
videoView.start();

linearLayout.addView(videoView);  

Что я делаю неправильно?

Путь к видеофайлу - /storage/emulated/0/DCIM/Camera/VID_20180212_195520.mp4

0
0
1 213
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы можете напрямую установить параметры макета в videoview и использовать setVideoURI, пожалуйста, обратитесь к приведенному ниже коду и проверьте.

RelativeLayout relativeLayout = findViewById(R.id.yourrelativelayout);
LinearLayout linearLayout = new LinearLayout(mContext);

VideoView video = new VideoView(this);
video.setVideoURI(videoUri);

video.setLayoutParams(new LinearLayout.LayoutParams(
                             LinearLayout.LayoutParams.MATCH_PARENT,
                             LinearLayout.LayoutParams.MATCH_PARENT));

video.requestFocus();
video.start();

linearLayout.addView(video);

// please attach above layout to your xml view
relativeLayout.addView(linearLayout); // here you can either relative or linear

To get videoUri from video path then do like below

Uri videoUri = Uri.fromFile(new File("/storage/emulated/0/DCIM/Camera/VID_20180212_195520.mp4"));
Ответ принят как подходящий

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

Самым быстрым решением может быть следующее:

  1. определить LinearLayout через xml
  2. получить ссылку на нее и использовать ее для прикрепления видеоизображения

    LinearLayout linearLayout = findViewBy (R.id.yourlinearlayoutid)

    LayoutParams videoView_LP = новый LayoutParams (ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);

    VideoView videoView = новый VideoView (RevLibGenConstantine.REV_CONTEXT); videoView.setLayoutParams (videoView_LP);

    videoView.setVideoPath (путь видео); videoView.requestFocus (); videoView.start ();

    linearLayout.addView (видеопросмотр);

Другие вопросы по теме