VideoView与MediaPlayer有何区别?

4
请告诉我为什么这个方法可以在MediaPlayer中工作,而在videoView中却不能?如何使它在videoView中正常工作?
视频是从API下载的,并保存在我创建的文件夹中:
File mediadir = cw.getDir("tvr", Context.MODE_PRIVATE);

VideoView

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();

错误视频视图很抱歉,这个视频无法播放并显示错误代码(1、-2……)

媒体播放器 --- 可用

FileInputStream fileInputStream = new FileInputStream(path);

 MediaPlayer pl = new MediaPlayer();
 pl.setDataSource(fileInputStream.getFD());
 pl.prepare();
 pl.start();
1个回答

6
基本原因是MODE_PRIVATE,它禁止VideoView和MediaPlayer播放非World Readable文件,除非您像您一样传递FD

这里有更详细的解释


@Harry,我的回答不够清晰吗?如果可以的话,请接受它,因为我需要积分! :) - pete

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接