Android 从内部存储器读取视频

Android 从内部存储器读取视频,android,internal-storage,Android,Internal Storage,这是将视频保存到内部存储器的代码(可能是我保存错误): 现在我从原始文件夹中获取视频,但稍后我会从互联网上下载(这不是问题) 这是读取视频的代码,但它失败了: private void loadVideoFromStorage(String path) { File f = new File(path, "video1.mp4"); videoView.setVideoURI(Uri.fromFile(f)); videoView.start

这是将视频保存到内部存储器的代码(可能是我保存错误):

现在我从原始文件夹中获取视频,但稍后我会从互联网上下载(这不是问题)

这是读取视频的代码,但它失败了:

private void loadVideoFromStorage(String path) {


        File f = new File(path, "video1.mp4");

        videoView.setVideoURI(Uri.fromFile(f));
        videoView.start();


}

“这是将视频保存到内部存储器的代码”--我建议去掉
ContextWrapper
(无用),并在
fos.close()
之前调用
fos.flush()
fos.getFD().sync()
(确保在继续之前将字节写入磁盘)。IIRC,视频播放器无法访问您的内部存储。您可以尝试将其临时写入外部存储(例如,
getExternalFilesDir()
),看看是否有帮助。如果有,我不知道如何用
VideoView
修复它;使用
MediaPlayer
,我认为
setDataSource(FileDescriptor)
可以工作。感谢您的帮助。我只有一个问题,在我想阅读它之前,我应该将它暂时写入外部存储器吗?是的。更具体地说,我的意思是将
文件目录
更改为指向外部存储上的某个位置(例如,
getExternalFilesDir()
),以运行测试并查看是否可以从那里播放视频。谢谢,这将节省我一些时间。“这是将视频保存到内部存储的代码”--我建议去掉
ContextWrapper
(无用),并在
fos.close()
之前调用
fos.flush()
fos.getFD().sync()
(确保在继续之前将字节写入磁盘)。IIRC,视频播放器无法访问您的内部存储。您可以尝试将其临时写入外部存储(例如,
getExternalFilesDir()
),看看是否有帮助。如果有,我不知道如何用
VideoView
修复它;使用
MediaPlayer
,我认为
setDataSource(FileDescriptor)
可以工作。感谢您的帮助。我只有一个问题,在我想阅读它之前,我应该将它暂时写入外部存储器吗?是的。更具体地说,我的意思是将您的
文件目录
更改为指向外部存储上的某个位置(例如,
getExternalFilesDir()
),以运行测试并查看是否可以从那里播放视频。谢谢,这将节省我一些时间。
private void loadVideoFromStorage(String path) {


        File f = new File(path, "video1.mp4");

        videoView.setVideoURI(Uri.fromFile(f));
        videoView.start();


}