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