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

时间:2014-02-26 10:27:40

标签: java android android-activity android-videoview

我有一个使用视频观看视频流的应用。

由于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媒体播放器并且代码不正确。 如何在同一个类中访问具有相同名称的方法。我希望能够根据用户的设备使用这两种方法。

提前致谢。

3 个答案:

答案 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)