有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

在一个Java Android类中使用相同名称的方法

我有一个应用程序,使用视频视图显示视频流

由于我不想显示Android版本的视频格式,因此<;2.0我正在使用vitamio库在旧设备上显示视频

然而Vitamio比Android视频视图库慢得多,我不想在所有设备上都使用它;我只想把它用在老的上面

但是,库和方法的名称相同: i、 e

import 安卓.media.MediaController;
import io.vov.vitamio.MediaController;

在类中,我只导入安卓 Media controller,然后访问vitamio,如下所示:

 io.vov.vitamio.widget.MediaController mediacontroller = new io.vov.vitamio.widget.MediaController(parentActivity); 

在我想访问vitamio库中的一种方法之前,这一切都很正常。例如:

videoView.io.vov.vitamio.widget.VideoView.setVideoURI(video);

这不起作用,因为正确的用法是:

videoView.setVideoURI(video);

如果我这样做了,那么Android媒体播放器就会被访问,并且代码不正确。 如何访问同一类中具有相同名称的方法。我希望能够根据用户的设备使用这两种方法

提前谢谢


共 (3) 个答案

  1. # 1 楼答案

    检查您的类VideoView是否来自类型“VideoView.io.vov.vitamio.widget.VideoView”,而不是“android.widget.VideoView”

  2. # 2 楼答案

    videoView.io.vov.vitamio.widget.VideoView.setVideoURI(video);
    

    通过这样做,您试图以静态方式调用该方法

    您应该将videoView变量声明为videoView.io.vov.vitamio.widget.VideoView的实例,然后调用适当的方法:

    // declaration of variable as an instance of the correct class
    videoView.io.vov.vitamio.widget.VideoView videoView;
    // now, use the method
    videoView.setVideoURI(video);
    
  3. # 3 楼答案

    您不需要videoView.io.vov.vitamio.widget.VideoView.setVideoURI(video),它应该是videoView.setVideoURI(video),其中videoView的类型为io.vov.vitamio.widget.VideoView

    如果它是Object,则可以显式强制转换:((io.vov.vitamio.widget.VideoView)myObject).setVideoURI(video)