猿问

如何从资源文件夹或原始文件夹中播放android中的视频?

如何从资源文件夹或原始文件夹中播放android中的视频?

我正在尝试在Android模拟器中播放视频我在我的资源文件夹中的视频以及原始文件夹但是在做了一些研究后仍然无法在我的模拟器中播放视频我正在使用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

似乎没有其他方法可以在启动时将文件复制到SD卡,这似乎浪费时间和内存。


POPMUISE
浏览 1080回答 3
3回答

尚方宝剑之说

##从Android 1.6开始正常工作##getWindow().setFormat(PixelFormat.TRANSLUCENT);VideoView videoHolder = new VideoView(this);//if you want the controls to appearvideoHolder.setMediaController(new MediaController(this));Uri video = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.your_raw_file); //do not add any extension//if your file is named sherif.mp4 and placed in /raw//use R.raw.sherifvideoHolder.setVideoURI(video);setContentView(videoHolder);videoHolder.start();##查看完整教程##
随时随地看视频慕课网APP

相关分类

Android
我要回答