我正在尝试在android模拟器中播放视频,我在我的Assets文件夹以及原始文件夹中都有视频,但是经过一些研究后,我仍然无法在模拟器中播放视频,我正在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,这似乎是浪费时间和内存。