我正在尝试在 android 模拟器中播放视频我的资产文件夹和 raw 文件夹中有视频但是在做了一些研究之后我仍然无法在我的模拟器中播放视频我正在使用 android 2.1 我的视频格式是 mp4 所以我不认为这应该是一个问题 谁能给我一个示例代码,以便我能理解更多?
问题是我需要显示视频的 VideoView 只需要一个 URI 或文件路径来指向视频。
如果我将视频保存在 raw 或 assets 文件夹中,我只能获取输入流或文件描述符,而且似乎没有任何内容可用于初始化 VideoView。
更新
我仔细查看了 MediaPlayer 示例,并尝试使用 FileDescriptor 对资产文件启动 MediaPlayer,如下面的代码所示:
SurfaceView videoView = (SurfaceView) findViewById(gettingStarted)
SurfaceHolder holder = videoView.getHolder();
holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
final MediaPlayer player = new MediaPlayer();
player.setDisplay(holder);
player.setDataSource(getAssets().openFd(fileName).getFileDescriptor());
player.prepareAsync();
player.setOnPreparedListener(new OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mp.start();
}
});
现在我得到以下异常:
java.io.FileNotFoundException: This file can not be opened as a file descriptor; it is probably compressed
似乎没有其他方法可以在启动时将文件复制到 sdcard,这似乎是在浪费时间和内存。