将mp4文件保存到/data/data/mypackage/filess/my.mp4时,调用VideoView的setVideoPath();它不能工作。
对于同一个文件,如果我将文件保存到/mnt/sdcard/my.mp4,然后调用同一个VideoView的setVideoPath,它就会正确播放。
有什么方法可以在/data/data/mypackage/filess/下播放mp4文件吗?
MP或VideoView使用的本地播放器无法访问非世界可读文件
所以你必须选择基本上:
1) 使创建的文件具有全世界可读性
2) 打开程序中文件的输入流,然后将文件描述符交给媒体播放器:
FileInputStream fi = new FileInputStream(file);
MediaPlayer pl = new MediaPlayer();
pl.setDataSource(fi.getFD());
pl.prepare();
pl.start();
另请查看此线程VideoView/MediaPlayer不从内部存储播放视频并从这里找到自定义VideoView类代码还请查看此SO问题视频视图可以播放存储在内部存储上的视频吗?