我有一个使用视频观看视频流的应用。
由于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媒体播放器并且代码不正确。 如何在同一个类中访问具有相同名称的方法。我希望能够根据用户的设备使用这两种方法。
提前致谢。
答案 0 :(得分: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);
答案 1 :(得分:0)
检查你的课程VideoView来自“videoView.io.vov.vitamio.widget.VideoView”,而不是“android.widget.VideoView”。
答案 2 :(得分:0)
您不需要videoView.io.vov.vitamio.widget.VideoView.setVideoURI(video)
,视频类型videoView.setVideoURI(video)
应为io.vov.vitamio.widget.VideoView
。
如果是Object
,您可以明确地投射:((io.vov.vitamio.widget.VideoView)myObject).setVideoURI(video)
。