无法在res文件夹

时间:2017-08-25 12:37:50

标签: java android video resources

我是Android开发的新手,我在名为视频 res 文件夹下创建了一个新文件夹,然后我在其中放入了一个视频文件,以便在应用中使用。以下是我尝试使用视频文件的代码。

package com.example.touseef.myapplication;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.Toast;
import android.widget.VideoView;

public class MainActivity extends AppCompatActivity {



@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    VideoView MyVideoView =(VideoView) findViewById(R.id.videoView);
    MyVideoView.setVideoPath("android.resource://"+getPackageName()+"/"+R.videos.bang);
    MyVideoView.start();
}
}

错误:之前发现错误找不到变量R.videos ,但后来我尝试在启动android studio后清理并重建项目,它问我是有些链接与bang.mp4文件作为文本文件,我说好。

现在当我尝试构建它时,bang.mp4文件在android studio中以文本形式打开,我收到以下错误。

prolog中不允许使用内容

注意:我无法在android studio中的 android视图下的 res 文件夹下看到视频文件夹但文件夹确实存在,因为我可以在我的电脑中的 FileEx plorer 中看到它并且它也有该视频文件。还要注意,当我重新启动我的项目时,我可以看到该文件夹​​,但在android工作室完成加载并对我的项目进行索引后,它会再次消失。

2 个答案:

答案 0 :(得分:4)

res/videos不是有效的资源文件夹。您需要将视频放入res/raw并从R.raw引用它。请查看Android文档的Providing Resources部分。不过要记住一个重要的问题:

  

但是,如果需要访问原始文件名和文件层次结构,可以考虑在assets/目录中保存一些资源(而不是res/raw/)。 assets/中的文件未获得资源ID,因此您只能使用AssetManager来阅读它们。

答案 1 :(得分:3)

在res文件夹中创建原始文件夹并将您的视频放在该文件夹中

String uri = "android.resource://" + getPackageName() + "/" + R.raw.video;
    Uri video = Uri.parse(uri);
    VideoView videoView=(VideoView) findViewById(R.id.videoView);
    videoView.setVideoURI(video);
    videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
        @Override
        public void onPrepared(MediaPlayer mp) {
            mp.setLooping(true);
            videoView.start();
        }
    });