我用VLCj编写了一个媒体播放器; 我正在尝试复制VLC播放器,这样当按下空格键时,屏幕上会短暂显示“播放”字样。这可能吗?
我如何看待这个临时叠加?
答案 0 :(得分:2)
使用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测试源中的各种示例中得到证明。有选框,轻量级和重量级叠加的测试示例。
但是使用选框是最简单的推荐方法。