2013-01-08 116 views
0

我做了一個簡單的遊戲,它是一個基於狀態的遊戲,這意味着我有許多不同的狀態(屏幕),例如啓動屏幕,菜單屏幕和實際遊戲,我的菜單屏幕目前無聊,我希望它的一部分是沒有任何控制的視頻,所以它看起來像它的遊戲內置的動畫,我看着JMF,發現你只需要下面的代碼來工作(注意我已刪除了我發現這是在原來代碼中的控件,以便它只是視頻左起):在我的Java GUI中嵌入視頻

EIDT:代碼顯示與註釋解釋傳遞消息的錯誤:

package javagame; 

import java.awt.BorderLayout; 
import java.awt.Component; 
import java.net.URL; 

import javax.swing.JFrame; 

public class mediaPlayer extends JFrame 
    { 
     public mediaPlayer() 
     { 
      setLayout(new BorderLayout()); 


      URL mediaURL = //Whatever 

      Player mediaPlayer = Manager.createRealizedPlayer(mediaURL); 
      //Player cannot be resolved as a variable 
      //mediaPlayer cannot be resolved as a variable 
      //Manager cannot be resolved 



      Component video = mediaPlayer.getVisualComponent(); 
      //The method getVisualComponent() is undefined for thetype mediaplayer 
      add(video,BorderLayout.CENTER); 

     } 
    } 

我已經做了一個叫做mediaPlayer的新類,並把上面的代碼放在它裏面,它擴展了JFrame,但是我在播放器,mediaplayer和manager之類的東西里面出現了一些錯誤,比如make方法,爲此做類,這個,我認爲這樣可以毫無錯誤地工作,因爲它擴展了JFrame,並且所有的方法,類和變量都已經做好了,我錯了嗎?

回答

1

..am我錯了嗎?

是的,你是。自動包含在框架中的唯一方法是爲其定義的方法。

您正在討論的方法是JMF的一部分。這些類需要在代碼的頂部導入。例如:

import javax.media.*; 
+1

另外,修復導入是'Java 101',而使用過時的API來提供視頻是'主類'。考慮做更簡單的項目,直到你有更多的經驗。 –

+0

關於導入,我試過了,它說刪除未使用的導入。我有所有需要的導入,因爲我在eclipse上使用了ctrl + o來獲取它們。 –

+0

這太可笑了。該代碼使用['javax.media.Player']中的'Player'類(http://docs.oracle.com/cd/E17802_01/j2se/javase/technologies/desktop/media/jmf/2.1.1/apidocs /javax/media/Player.html)。由於在整個J2SE 7中沒有'Player'類,因此它應該顯示'Player'沒有導入的問題。請複製/粘貼編譯器錯誤。並一次發佈一個,而不是一堆。 –

0

確保您下載Java Media Framework。將jar添加到項目中名爲lib的文件夾中。右鍵單擊該jar並將其添加到構建路徑。那麼你的進口應該工作。