2014-02-26 74 views
1

我有一個應用程序顯示使用視頻視圖的視頻流。在同一個類中使用同名方法Java Android

由於我想要顯示的視頻格式不支持Android版本< 2.0我使用vitamio庫來顯示舊設備上的視頻。

但是,Vitamio比Android視頻視圖庫慢,我不想在所有設備上使用它;我只是想用它在舊的。

然而,庫的名稱和方法都是一樣的: 即

import android.media.MediaController; 
import io.vov.vitamio.MediaController; 

在課堂上,我只導入了android媒體控制器和I訪問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

您不必爲兩個類都放上完整路徑。只導入1個類,另一個通過路徑使用它。 – cosmincalistru

+0

我沒有導入這兩個類,我正在通過路徑訪問其中的一個。我在訪問方法時遇到問題,因爲它們與導入的類名稱相同。 – user3328051

+0

在這種情況下,您應該向我們展示您正在對這些類進行的所有調用,以便我們爲您提供解決方案。 – cosmincalistru

回答

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); 
+0

問題是,vitamio庫使用Android VideoView。我需要像這樣聲明視頻視圖變體:private VideoView videoView; – user3328051

+0

是videoView.io.vov.vitamio.widget.VideoView是原始Android版本的子類嗎? – 2Dee

+0

不,它不是...... – user3328051

0

檢查類VideoView是從類型「videoView.io.vov.vitamio.widget.VideoView」而不是「android.widget.VideoView」。

0

您不需要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)

相關問題