本文介紹了如何用VLCJ播放MP4?的處理方法,對(duì)大家解決問(wèn)題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧!
問(wèn)題描述
我正在嘗試在Java應(yīng)用程序中播放.mp4文件。我不需要任何控制按鈕(播放、停止)等。當(dāng)我運(yùn)行這段代碼時(shí),我唯一看到的是一個(gè)黑色方塊。我能做些什么呢?
import java.awt.*;
import javax.swing.*;
import com.sun.jna.Native;
import com.sun.jna.NativeLibrary;
import uk.co.caprica.vlcj.binding.LibVlc;
import uk.co.caprica.vlcj.player.MediaPlayerFactory;
import uk.co.caprica.vlcj.player.embedded.EmbeddedMediaPlayer;
import uk.co.caprica.vlcj.player.embedded.windows.Win32FullScreenStrategy;
import uk.co.caprica.vlcj.runtime.RuntimeUtil;
public class Vid {
public static void main(String[] args) {
JFrame f = new JFrame("Play");
f.setSize(500, 500);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setLocationRelativeTo(null);
f.setVisible(true);
Canvas c = new Canvas();
c.setBackground(Color.black);
JPanel p = new JPanel(new BorderLayout());
p.add(c);
f.setContentPane(p);
NativeLibrary.addSearchPath(RuntimeUtil.getLibVlcLibraryName(), "C:/Program Files/VideoLAN/VLC");
Native.loadLibrary(RuntimeUtil.getLibVlcLibraryName(), LibVlc.class);
MediaPlayerFactory mpf = new MediaPlayerFactory();
EmbeddedMediaPlayer emp = mpf.newEmbeddedMediaPlayer(new Win32FullScreenStrategy(f));
emp.setVideoSurface(mpf.newVideoSurface(c));
emp.prepareMedia("C:/file.mp4");
emp.play();
}
}
推薦答案
屏幕變黑只是因?yàn)槟拿襟w沒(méi)有開(kāi)始播放。
如果檢查您正在進(jìn)行的prepareMedia
和/或play
調(diào)用的返回值,您可能會(huì)發(fā)現(xiàn)它們返回False以指示錯(cuò)誤。
這可能是因?yàn)槟付霜?dú)立于Java平臺(tái)的文件名”c:/file.mp4″樣式。
您需要認(rèn)識(shí)到,vlcj使用的是LibVLC,這是一個(gè)本機(jī)庫(kù),因此您傳遞給該本機(jī)庫(kù)的內(nèi)容實(shí)際上是”c:/file.mp4″–這不是在Windows上使用的正確文件名。
您需要傳遞”c:file.mp4″,更準(zhǔn)確地說(shuō),傳遞”c:\file.mp4″,因?yàn)榉葱备鼙仨氜D(zhuǎn)義。
與您的問(wèn)題無(wú)關(guān),播放前無(wú)需調(diào)用prepareMedia
,改用playMedia
方法。
這篇關(guān)于如何用VLCJ播放MP4?的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,