Android 设置视频视图

Android 设置视频视图,android,android-videoview,Android,Android Videoview,我在我的应用程序中添加了以下代码,以添加一个视频视图,该视图链接到我的原始文件夹中的一个视频,但我在上遇到了一个错误 VideoView表示,VideoView无法解析或不是一个字段我已经包含了所有相关导入。这是我语法中的某个错误吗 VideoView StudentLife = (VideoView) findViewById(R.id.VideoView); Uri uri = Uri.parse("android.resource://"+getPackageName()

我在我的应用程序中添加了以下代码,以添加一个视频视图,该视图链接到我的原始文件夹中的一个视频,但我在上遇到了一个错误 VideoView表示,
VideoView无法解析或不是一个字段
我已经包含了所有相关导入。这是我语法中的某个错误吗

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" />

我的代码有效::

mc = new MediaController(this);
vd.setMediaController(mc);
vd.setVideoURI(intentUri);
vd.start();
setContentView(vd);
我的代码有效::

mc = new MediaController(this);
vd.setMediaController(mc);
vd.setVideoURI(intentUri);
vd.start();
setContentView(vd);

所以您的变量名是
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();  

所以您的变量名是
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();  

您的
VideoView
的id是
videoView1
。因此,您应该使用
R.id.videoView1
从视图层次结构中获取对
VideoView
对象的引用:

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

您的
VideoView
的id是
videoView1
。因此,您应该使用
R.id.videoView1
从视图层次结构中获取对
VideoView
对象的引用:

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

实际上,当你使用这个代码时

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,不如在设置时传递它。

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

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,不如在设置过程中传递它。

是运行时的编译时错误吗?可以显示xml布局文件吗?这是一个编译时错误。我刚刚添加了xml布局。它是运行时的编译时错误吗?可以显示xml布局文件吗?这是一个编译时错误。我刚刚添加了xml布局。好的,实际上我的类名是StudentLife。这仍然是正确的定义还是我应该创建一个变量?谢谢您应该创建一个具有其他名称的变量
viewView
可以用来代替我在回复中发布的代码中的
StudentLife
。非常感谢,我刚刚意识到我在R.id上犯了错误。好的,实际上我的类名是StudentLife。这仍然是正确的定义还是我应该创建一个变量?谢谢您应该创建一个具有其他名称的变量
viewView
可以用来代替我在回复中发布的代码中的
StudentLife
。。非常感谢,我刚刚意识到我在R.id上犯了一个错误。如果
uri
如你所说为null,那么
uri.parse()
将返回null。在第二种情况下也是“StudentLife.setVideoURI(null)”。我之前也遇到过同样的问题,当我调试它时,我知道它返回null,然后我尝试了给你的代码,它对我有效。如果
uri
如你所说是null,那么
uri.parse()
返回null。在第二种情况下也是“StudentLife.setVideoURI(null)”。我之前也遇到过同样的问题,当我调试它时,我知道它返回null,然后我尝试了给你的代码,它对我有效。