我正在尝试将视频文件从内部存储加载到VideoView。我从服务器下载这些视频文件,然后使用以下代码在本地存储它们:
FileOutputStream out = openFileOutput(filename, Context.MODE_WORLD_READABLE);
这里的文档:http://developer.android.com/guide/topics/data/data-storage.html#filesInternal让我相信这些文件会被创建为世界可读的,但我不认为这是真的。
以下是我用于将文件加载到ViewView中的代码:
videoView.setVideoPath(getFilesDir() +"/"+ filename);
以下是我从DDMS获得的输出:
ERROR/MediaPlayer(4264): error (1, -2147483648)
ERROR/MediaPlayer(4264): Error (1,-2147483648)
DEBUG/VideoView(4264): Error: 1,-2147483648
如果我更改代码以从我的原始资源目录加载相同的视频,一切运行正常。但是,我需要能够下载这些视频并在本地播放。
我唯一的选择是使用外部数据,还是有办法将内部数据公开给像VideoView这样的东西?
答案 0 :(得分:1)
评论中的CommonsWare解决方案在下面重复,因为它是我最终使用的那个:
请注意,如果您不喜欢MediaPlayer
的界面,则可以始终使用SurfaceView
和VideoView
。或者,使用ContentProvider
实现简单的openFile()
以返回FileDescriptor
,并使用content://
Uri和VideoView
。 - CommonsWare