在我们国家,有3个频道/节目的dvb频率为570000000; 16,17,18

这是我用来通过替换:program值通过批处理文件为vlc更改频道的mrl。

"C:\Program Files (x86)\VideoLAN\VLC\vlc.exe" dvb-t://frequency=570000000:bandwidth=8 :dvb-adapter=0 :live-caching=1000 :program=16


但是,当我通过VLCJ使用相同的mrl时,:program似乎没有任何效果,并且在不更改代码的情况下随机显示频道。

import uk.co.caprica.vlcj.discovery.NativeDiscovery;
import uk.co.caprica.vlcj.player.MediaPlayer;
import uk.co.caprica.vlcj.player.MediaPlayerFactory;


public class VLCJTest {

    public static void main(String[] args) throws Exception {
        new NativeDiscovery().discover();

        final MediaPlayerFactory factory = new MediaPlayerFactory();
        final MediaPlayer mediaPlayer = factory.newHeadlessMediaPlayer();

        String str = "dvb-t://frequency=570000000 :bandwidth=8 :dvb-adapter=0 :live-caching=1000 :program=16";

        mediaPlayer.playMedia(str);

        Thread.currentThread().join();
    }
}


谁能帮助我解决如何通过VLCJ mrl更改数字电视频道/节目的方法?

谢谢。

最佳答案

该字符串必须分为MRL和单独的“选项”:

String mrl = "dvb-t://frequency=570000000";
String[] options = {
    ":bandwidth=8",
    ":dvb-adapter=0",
    ":live-caching=1000",
    ":program=16"
};
mediaPlayer.playMedia(mrl, options);

07-22 13:56