VideoView无法播放视频

时间:2019-05-08 03:02:09

标签: java android

我想使用videoview播放mp4视频(可在android上播放),但无法播放视频。

我的视频在sdcard文件夹中,

有人可以帮我吗

这是我的代码:

final VideoView vd = new VideoView(AboutActivity.this); 

vd.setLayoutParams(new LinearLayout.LayoutParams(android.widget.LinearLayout.LayoutParams.MATCH_PARENT, android.widget.LinearLayout.LayoutParams.MATCH_PARENT)); linevideo.addView(vd);

MediaController mediaController = new MediaController (this); 

mediaController.setAnchorView (vd); vd.setMediaController (mediaController); 

Uri video = Uri.parse(Environment.getExternalStorageDirectory().getPath() + "/media/vid.mp4");
vd.setVideoURI(video); vd.requestFocus (); vd.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp){
mp.setLooping(true);
vd.start (); 
}
});

3 个答案:

答案 0 :(得分:0)

我已经看到,在布局内声明videoView时,它有时不显示,因为它被隐藏在其他组件的后面。要解决此问题,您必须添加以下代码行:

vd.setZOrderOnTop(true);

在其他情况下(尽管我不确定为什么会发生这种情况),对我来说,将videoView的背景设置为透明是可以的。

vd.setBackgroundColor(Color.TRANSPARENT);

答案 1 :(得分:0)

您步入正轨, 只需在mp.start();内使用listener

vd.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
    @Override
    public void onPrepared(MediaPlayer mp){
        mp.setLooping(true);
        **mp.start ();** 
    }
});

答案 2 :(得分:0)

一开始尝试更改

vd.setVideoURI(video);

vd.setVideoPath(video);

并检查是否在清单中添加以下权限:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>