[英]Use methods of the same name in one class Java Android
我有一个应用程序可以使用视频视图显示视频流。
由于我要显示的视频格式不受Android版本<2.0的支持,因此我使用vitamio库在较旧的设备上显示视频。
但是,Vitamio比Android视频视图库慢得多,我不想在所有设备上都使用它。 我只想在较旧的机器上使用它。
但是,库的名称和方法是相同的:即
import android.media.MediaController;
import io.vov.vitamio.MediaController;
在该类中,我仅导入android Media控制器,然后访问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媒体播放器,并且代码不正确。 如何在相同的类中访问具有相同名称的方法。 我希望能够根据用户的设备使用这两种方法。
提前致谢。
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);
检查您的类VideoView是否来自“ videoView.io.vov.vitamio.widget.VideoView”类型,而不是“ android.widget.VideoView”类型。
您不需要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)
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.