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. 覆盖文字?
- 2. 覆盖字典()上
- 3. 悬停上的文字覆盖
- 4. 如何堆叠/覆盖Java中的jPanel?
- 5. Flexslider上的文本覆盖
- 6. 在图像上覆盖文字
- 7. 在居中图像上覆盖文字?
- 8. Java Swing:清除Jpanel中其他JPanel覆盖的JPanel的自定义绘画
- 9. JPanel矩形覆盖;将不会删除
- 10. 覆盖覆盖背景图片的顶部的清晰文字?
- 11. 覆盖文件上传
- 12. Feincms ApplicationContent覆盖上下文
- 13. 覆盖画布覆盖在画布上
- 14. 将文字覆盖到pdf文档上的iPad
- 15. 覆盖JpGraph中的栏上的文本
- 16. 覆盖覆盖?
- 17. 覆盖文件
- 18. 用MLT覆盖视频上的文本
- 19. 覆盖服务器上的.htaccess文件
- 20. 带文字的覆盖通知图标
- 21. 覆盖matlab中的书面文字
- 22. 覆盖多个图像的文字
- 23. 带覆盖效果的图像CSS上的文字
- 24. 覆盖Django上InlineModelAdmin
- 25. 字jquery覆盖从
- 26. 覆盖admin.TabularInline字段
- 27. C++覆盖...覆盖?
- 28. 覆盖或覆盖
- 29. 如何覆盖图像上的文字没有对齐问题
- 30. 在图像上覆盖文字的css圈
这将是困难和容易出错的,因为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