设置视频视图

时间:2013-03-19 12:36:05

标签: android android-videoview

我在我的应用中添加了以下代码,以添加一个视频视图,该视频链接到我的原始文件夹中的视频但是我收到了错误信息 VideoView说VideoView cannot be resolved or is not a field我已经包含了所有相关的imports.Is在我的语法中出现了错误?

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

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

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

我对视频的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 个答案:

答案 0 :(得分:4)

因此您的变量名称为StudentLife

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

你在videoview上调用其他mehtod是未定义的变量..

以下代码:

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

应该是:

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

EDIT1:

根据你的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();  

答案 1 :(得分:1)

VideoView的ID为videoView1。因此,您应该使用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();  

答案 2 :(得分:0)

我的代码有效::

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

答案 3 :(得分: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,而是在设置它时传递它会更好。