1
A
回答
1
與vlcj做到這一點的一種方法是使用「選取框」。
選取框由本地LibVLC庫函數提供,由vlcj包裝。
第一:
import static uk.co.caprica.vlcj.player.Marquee.marquee;
然後在你的鼠標點擊監聽器:
marquee()
.text("Play")
.location(x, y)
.position(libvlc_marquee_position_e.bottom)
.opacity(0.7f)
.colour(Color.white)
.timeout(5000)
.size(20)
.apply(mediaPlayer);
這是API的 「建設者」 的風格,有一個帶有字幕,如個別方法的另一個API:
mediaPlayer.setMarqueeText("Play");
mediaPlayer.setMarqueeSize(60);
mediaPlayer.setMarqueeOpacity(70);
mediaPlayer.setMarqueeColour(Color.green);
mediaPlayer.setMarqueeTimeout(3000);
mediaPlayer.setMarqueeLocation(300, 400);
mediaPlayer.enableMarquee(true)
所有這一切都被記錄在vlcj的Javadoc:
http://caprica.github.io/vlcj/javadoc/3.0.0/uk/co/caprica/vlcj/player/Marquee.html http://caprica.github.io/vlcj/javadoc/3.0.0/uk/co/caprica/vlcj/player/MediaPlayer.html
還有其他辦法...
你可以嘗試用疊加在視頻的頂部絕對定位的AWT標籤,這會工作,但標籤將不會有一個透明背景。
您可以使用所謂的「直接」渲染媒體播放器(您自己渲染視頻的位置),然後您可以在視頻頂部繪製自己的圖形,或使用Swing JLabel。在這種情況下,您可以使用透明度。
您甚至可以在視頻窗口頂部覆蓋透明的頂層窗口,並在該窗口中繪製/放置標籤。
所有這些方法都在vlcj測試源中的各種示例中演示。有跑馬燈的測試例子,以及輕量級和重量級的疊加。
但使用選框是最簡單的推薦方法。
相關問題
- 1. JScrollPane不覆蓋整個JPanel
- 2. 覆蓋文字?
- 3. 覆蓋字典()上
- 4. 懸停上的文字覆蓋
- 5. 用PIL覆蓋圖片上的文字
- 6. 如何堆疊/覆蓋Java中的jPanel?
- 7. 將JScrollPane添加到被覆蓋的JPanel
- 8. Flexslider上的文本覆蓋
- 9. 寫上覆蓋的文本
- 10. 覆蓋文字的日期
- 11. 在圖像上覆蓋文字
- 12. 在居中圖像上覆蓋文字?
- 13. JPanel矩形覆蓋;將不會刪除
- 14. Java Swing:清除Jpanel中其他JPanel覆蓋的JPanel的自定義繪畫
- 15. R:覆蓋圖上的覆蓋圖
- 16. 覆蓋覆蓋背景圖片的頂部的清晰文字?
- 17. Feincms ApplicationContent覆蓋上下文
- 18. 覆蓋文件上傳
- 19. 覆蓋圖像與文字
- 20. 背景覆蓋文字
- 21. 字典覆蓋
- 22. 覆蓋畫布覆蓋在畫布上
- 23. 覆蓋上的字段初始化
- 24. 將文字覆蓋到pdf文檔上的iPad
- 25. 覆蓋JpGraph中的欄上的文本
- 26. 覆蓋覆蓋?
- 27. 覆蓋文件
- 28. 覆蓋服務器上的.htaccess文件
- 29. 用MLT覆蓋視頻上的文本
- 30. 浮動文本覆蓋文字
這將是困難和容易出錯的,因爲VLCj使用'Canvas'作爲主視圖,所以混合Swing和AWT組件在最佳時機可能會出現問題。你有什麼嘗試? – MadProgrammer 2014-09-25 00:22:24
贊[this](http://stackoverflow.com/q/6725618/230513)? – trashgod 2014-09-25 03:02:28
您使用的是jvlc還是vlcj?你可能想檢查你的標籤。 – caprica 2014-09-25 06:35:38