4

请告诉我为什么这适用于 MediaPLayer 而不是 videoView?以及如何使其与视频视图一起使用?

视频从 API 下载并保存在我创建的这个文件夹中:

File mediadir = cw.getDir("tvr", Context.MODE_PRIVATE);

视频视图

final Uri uri = Uri.parse(path);
// path = /data/data/com.foo.app/tvr/video.mp4
videoView = (VideoView) findViewById(R.id.videoView);
videoView.setVisibility(View.VISIBLE);
videoView.setOnCompletionListener(this);
videoView.setVideoURI(Uri.parse(path));
videoView.start();

错误 VideoView抱歉,此视频不能播放并且错误 (1, -2...)

媒体播放器---这个工作

FileInputStream fileInputStream = new FileInputStream(path);

 MediaPlayer pl = new MediaPlayer();
 pl.setDataSource(fileInputStream.getFD());
 pl.prepare();
 pl.start();
4

1 回答 1

6

基本原因是 MODE_PRIVATE,它不允许 VideoView 和 MediaPlayer 播放非 World Readable 文件,除非您按原样传递 FD。

这里有更详细的解释

于 2013-07-11T17:27:11.887 回答