0

我将以下代码添加到我的应用程序中以添加一个视频视图,该视频视图链接到我的原始文件夹中的视频,但我在 VideoView 上收到一个错误,说VideoView cannot be resolved or is not a field我已包含所有相关的导入。我的语法中某处有错误吗?

VideoView StudentLife = (VideoView) findViewById(R.id.VideoView);

        Uri uri = Uri.parse("android.resource://"+getPackageName()+"/"+R.raw.learningatgmi);

        videoview.setVideoURI(uri);
        videoview.start();  

我的 videoview xml 布局如下:

<VideoView
        android:id="@+id/videoView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/textView2"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="53dp" />
4

4 回答 4

4

所以你的变量名是StudentLife

VideoView StudentLife = (VideoView) findViewById(R.id.VideoView);

并且您正在调用其他videoview未定义变量的方法。

所以下面的代码:

        videoview.setVideoURI(uri);
        videoview.start();  

应该:

        StudentLife.setVideoURI(uri);
        StudentLife.start();  

编辑1:

根据您的 xml,获取视频视图实例的行应该如下

VideoView StudentLife = (VideoView) findViewById(R.id.videoView1);

完整的工作代码应如下所示:

VideoView StudentLife = (VideoView) findViewById(R.id.videoView1);
Uri uri = Uri.parse("android.resource://"+getPackageName()+"/"+R.raw.learningatgmi);
StudentLife.setVideoURI(uri);
StudentLife.start();  

另一方面不是;你不应该使用类名作为变量名......同样在java中变量的第一个字符不应该是大写......所以让我们使用'videoView'作为变量名......所以现在下面应该是正确的工作代码一种变量名..

VideoView videoView = (VideoView) findViewById(R.id.videoView1);
Uri uri = Uri.parse("android.resource://"+getPackageName()+"/"+R.raw.learningatgmi);
videoView.setVideoURI(uri);
videoView.start();  
于 2013-03-19T12:42:15.270 回答
1

你的 idVideoViewvideoView1. 因此,您应该VideoView使用以下方法从视图层次结构中获取对对象的引用R.id.videoView1

 VideoView StudentLife = (VideoView) findViewById(R.id.videoView1);
 Uri uri = Uri.parse("android.resource://"+getPackageName()+"/"+R.raw.learningatgmi);
 StudentLife.setVideoURI(uri);
 StudentLife.start();  
于 2013-03-19T12:43:30.833 回答
0

我的代码有效::

mc = new MediaController(this);
vd.setMediaController(mc);
vd.setVideoURI(intentUri);
vd.start();
setContentView(vd);
于 2013-03-19T12:40:08.773 回答
0

实际上,当您使用此代码时,

Uri uri = Uri.parse("android.resource://"+getPackageName()+"/"+R.raw.learningatgmi);
StudentLife.setVideoURI(uri);

它将 URI 作为 null 传递,因此它向您显示错误因此,您不能使用以下代码代替。

StudentLife=(VideoView)findViewById(R.id.videoplayer);
StudentLife.setVideoURI(Uri.parse("android.resource://" +getPackageName()+ "/" +R.raw.sample));
StudentLife.requestFocus();
StudentLife.start();

与其在设置之前解析 URI,不如在设置的时候传递它。

于 2013-11-26T06:59:57.873 回答