13

這甚至有可能嗎?我嘗試過使用MediaPlayer,但它在MediaPlayer對象上引發NullPointerException。我可以讓音頻工作,但視頻不會。Android在動態壁紙中播放電影文件

mp=MediaPlayer.create(getApplicationContext(), R.raw.sample); 
mp.start(); 
mp.setOnCompletionListener(new OnCompletionListener() 
{ 
    public void onCompletion(MediaPlayer mp) { 
      mp.release(); 
      playing = false; 
    } 
}); 

該示例是.mp4類型。

任何人都知道爲什麼發生這種情況,或者有另一種獲取視頻播放方法的建議?

+0

我建議閱讀文檔:http://developer.android.com/reference/android/media/MediaPlayer.html。對於初學者,您需要在調用start()之前調用prepare()或prepareAsync(); – 2012-06-07 02:23:33

+2

我可以感覺到我的電池耗盡時只是想着它... – KidTempo 2012-06-12 18:19:02

+0

你能夠讓你的代碼在普通的應用程序中播放視頻嗎?這是排除你的代碼是否是問題的一種方法。 – 2012-06-19 23:53:46

回答

3

您可以使用下面的代碼

VideoView videoView; 
    VideoView = (VideoView) findViewById (R.id.txt1); 
    videoView.setVideoPath(path); 
    videoView.setVisibility(VideoView.VISIBLE); 
videoView.start(); 

我試圖在我的模擬器播放MP4,但它並沒有顯示視頻,但是當我試圖在設備上它做工精細。

+0

首先嚐試在設備上運行您的代碼 – Salman 2012-07-03 04:22:00

1

以前沒有嘗試過,但我認爲你可以使用完全免費的vlcj框架,並可以有效地播放幾乎任何類型的視頻(當然還可以播放.mp4視頻文件)。我不能給你任何代碼因爲的android從來沒有與Android的工作,但我知道Java和它只是works.So這裏是我在Java中使用:

NativeLibrary.addSearchPath("libvlc",path); //To set path of libvlc 
Native.loadLibrary(RuntimeUtil.getLibVlcLibraryName(), LibVlc.class);//To import libvlc 
//The path can be a folder in your android project.All the files needed are in vlc player installation folder.so yes you have to install vlc in your computer to get those files but just once. 
canvas = new WindowsCanvas(); 
panel.add(canvas);//panel is like your VideoView 
canvas.setVisible(true); 
canvas.setBackground(Color.black); 

mediaPlayerFactory = new MediaPlayerFactory(); 
player12 = mediaPlayerFactory.newEmbeddedMediaPlayer(); 
CanvasVideoSurface videoSurface = mediaPlayerFactory.newVideoSurface(canvas); 
player12.setVideoSurface(videoSurface); 
player12.setPlaySubItems(true); 
player12.startMedia(yourVideoPath); 

player12.setAspectRatio(""+panel.getWidth()+":"+panel.getHeight()); //Those two lines are for your video to be adusted in your panel or better to your VideoView 
player12.setCropGeometry(""+panel.getWidth()+":"+panel.getHeight()); 

的jar文件,你必須在你的類路徑,包括有JNA-3.4.0.jar ,platform-3.4.0.jar,vlcj-2.1.0.jar