为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

POPMUISE 2019-08-19 10:23:43
如何从资源文件夹或原始文件夹中播放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卡,这似乎浪费时间和内存。
查看完整描述

3 回答

?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

##从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();

##查看完整教程##


查看完整回答
反对 回复 2019-08-19
  • 3 回答
  • 0 关注
  • 1079 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信