我想使用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 ();
}
});
答案 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"/>