安卓如何在VideoView中加载视频

6
我希望你能够从raw文件夹中使用以下代码加载视频到视频视图。
 String uri = "android.resource://" + getPackageName() + "/" + R.raw.preview;
 VideoView mVideoView  = (VideoView)findViewById(R.id.videoView1);
 mVideoView.setVideoURI(Uri.parse(uri));
 mVideoView.requestFocus();
 mVideoView.start();

我在这一行收到NullPointerException异常:mVideoView.setVideoURI(Uri.parse(uri)); 有什么建议应该怎么做吗?

2个回答

4
请确保findViewById函数调用返回一个VideoView对象且非空。
当您调用一个空对象的方法时,空指针错误通常会发生。
很有可能您在布局xml文件中对R.id.videoView1的引用是错误的,或者您的xml布局文件中存在错误但未显示出来。
如果您正在使用Eclipse或Android Studio,则R.i.videoView1应该是蓝色的,表明它已在布局文件中找到。
另外,您可以在调用方法之前验证对象是否为空以确保其不为空。请参见以下内容:
 String uri = "android.resource://" + getPackageName() + "/" + R.raw.preview;
 VideoView mVideoView  = (VideoView)findViewById(R.id.videoView1);
 if (mVideoView != null)
 {  mVideoView.setVideoURI(Uri.parse(uri));
    mVideoView.requestFocus();
    mVideoView.start();
 } else
 { //toast or print "mVideoView is null"
 }

0

试试这个:

String path = "android.resource://" + getPackageName() + "/" + R.raw.preview;
VideoView mVideoView  = (VideoView)findViewById(R.id.videoView1);
mVideoView.setVideoPath(path);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接