我需要能够保存和播放内部存储器中的视频。这些文件混合了 .mp4 和 .3gp 格式。我的问题有两个部分 - 保存文件和播放。
保存文件
我知道将视频保存到内部存储器的两种方法:
1. FileOutputStream f = context.openFileOutput(videoName, MODE_WORLD_READABLE);
2. FileOutputStream f = new FileOutputStream(internalFilePath+File.separator+videoName);
where internalFilePath is obtained separately by using getFilesDir() function.
问题:我只能播放使用 #1 而不是上面的 #2 保存的视频。为什么?我收到如下错误消息:“无法播放此视频”
是因为 #2 存储的文件对于我的应用程序是私有的,因此视频播放应用程序无法读取它们吗?但是,我怎样才能让我的文件同时成为私密和可播放的呢?我猜这就是问题的第二部分适合的地方。
回放
我知道在我的应用中播放视频的三种方法:
- 使用 ACTION_VIEW 构建意图,将数据类型设置为适当的 mime 类型 startActivity(intent) 并让已安装的应用程序负责播放。
- 使用视频视图。虽然我个人不喜欢这种方法,因为涉及的编码量很大。
- 使用 MediaPlayer 类。
问题:考虑到我将文件存储在内存中,以下哪种方法最适合播放?