Java VLCJ播放器,设置音轨不起作用

问题描述 投票:1回答:1

我目前正在研究可以播放mkv格式的java媒体播放器。我正在使用VLCJ,一切正常,除非我尝试更改无效的音轨。

这是代码

public class mediaplayer {

    private static JFileChooser filechooser = new JFileChooser();

    public mediaplayer() {
    }

    public static void main(String[] args) {
        String vlcPath = "", mediaPath = "";
        File ourfile;

        filechooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
        filechooser.showSaveDialog(null);
        ourfile = filechooser.getSelectedFile();
        mediaPath = ourfile.getAbsolutePath();

        EmbeddedMediaPlayerComponent mediacom = new EmbeddedMediaPlayerComponent();

        JFrame frame = new JFrame();
        frame.setContentPane(mediacom);
        frame.add(canvas);
        frame.setLocation(100, 100);
        frame.setSize(1050, 600);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        frame.setVisible(true);

        MediaPlayer mplayer = mediacom.getMediaPlayer();

        mplayer.playMedia(mediaPath);
        mplayer.setAudioTrack(1);
    }
}
java media-player vlcj audiotrack
1个回答
1
投票

在vlc 2.0.5之前的libVLC版本中,设置音轨的本机API调用被窃听。

通过libVLC 2.0.5中的修复,设置音轨可以正常工作,但你不能只假设一个简单的0..N索引而你不能假设顺序音轨号码 - 你必须通过调用mediaPlayer.getAudioDescriptions来枚举音轨( )。返回的TrackDescription对象包含应与mediaPlayer.setAudioTrack()一起使用的音轨标识符。

要禁用音频,您可以选择带有“禁用”描述的音轨的音轨标识符。

另请注意,在调用mediaPlayer.playMedia()后,您可能无法立即设置音轨。媒体以异步方式启动,您可能需要等到媒体实际启动和/或在轨道信息可用之前已经解析。

© www.soinside.com 2019 - 2024. All rights reserved.