如何在vlcj MediaPlayer上添加透明背景的JLabel?添加透明JLabel top vlcj MediaPlayer?
我把源代碼放在下面,但它不能正常工作,因爲JLabel沒有透明背景設置。
import com.sun.jna.NativeLibrary;
import javax.swing.*;
import uk.co.caprica.vlcj.component.EmbeddedMediaPlayerComponent;
import uk.co.caprica.vlcj.runtime.RuntimeUtil;
class VideoExample extends JFrame {
private EmbeddedMediaPlayerComponent mediaPlayerComponent;
public VideoExample(String path) {
super("Простой видео плеер");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(640, 480);
//Create JLayeredPane
JLayeredPane mainLayer = new JLayeredPane();
mainLayer.setSize(640,480);
//Create MediaPlayer on background
mediaPlayerComponent = new EmbeddedMediaPlayerComponent();
mediaPlayerComponent.setLocation(0, 0);
mediaPlayerComponent.setSize(mainLayer.getSize());
//Create MediaPlayer on foreground
JLabel label = new JLabel("LABEL", JLabel.CENTER);
label.setBounds(100, 100, 200, 100);
label.setOpaque(false);
mainLayer.add(mediaPlayerComponent, JLayeredPane.DEFAULT_LAYER); //add mediaPlayer in DEFAULT_LAYER
mainLayer.add(label, JLayeredPane.PALETTE_LAYER); //add label in PALETTE_LAYER
add(mainLayer); // add JLayeredPane in JFrame
setVisible(true);
mediaPlayerComponent.getMediaPlayer().playMedia(path);
}
public static void main(String[] args) {
NativeLibrary.addSearchPath(RuntimeUtil.getLibVlcLibraryName(), System.getProperty("user.dir") + "/lib/vlc64");
final String mrl = "D:\\Candlelight_QT.mov";
new VideoExample(mrl);
}
}
這是結果:
The result http://vitamin.vipdesign.com.ua/1n7tJ.jpg
請理解您在請求志願者幫助他們的空閒時間。顯示回答問題*所需的所有相關代碼和信息*,而不是鏈接。如果代碼太長而無法在此處發佈,那麼請志願者審覈並且您應該儘可能通過創建併發布[sscce](http://sscce.org)來縮短代碼太長。 –
對不起。我糾正了。 – iRipVanWinkle
這可能是VLC的限制,因爲'JLabel'默認是透明的... – MadProgrammer