我正在使用vlcj创建媒体播放器。
我可以成功播放rtsp流。 但我想要显示流和#39;正在播放视频时的fps和比特率。
由于值可能是可变的,我需要在播放流时更新值。所以我需要玩家自己的数据。
可是:
List<TrackInfo> videoTrackInfo = mediaPlayer.getTrackInfo(TrackType.VIDEO);
在我的情况下返回null。
另外:
mediaPlayer.getRate();
mediaPlayer.getFps();
返回0.0(浮点数)和1.0(浮点数)。当然这不正确。
在VLC本身中,使用带有vbr的流,您可以看到该时刻的比特率。我希望也可以从vlcj中获取这些值。
由于
答案 0 :(得分:0)
使用类似RTSP流的媒体,您正在播放的媒体实际上是某种播放列表&#34;。
播放列表没有比特率或FPS等等。
当您播放播放列表时,实际发生的是VLC或其插件会解析您的播放列表网址并生成&#34;子项目&#34;对于实际的媒体本身。通常,第一个这样的子项将是您想要的媒体流,并且默认情况下将播放该vlcj。
因此,请使用适用于子项的媒体播放器API方法。
处有mediaPlayer.getSubItemTrackInfo()
,Javadoc
您需要侦听媒体播放器事件,以了解子项目的创建时间,并确保在此之前不要调用API。