我是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工作室完成加载并对我的项目进行索引后,它会再次消失。
答案 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();
}
});