我一直在跟踪这个伟大的网站多年。今天,当我遇到问题时,我终于决定创建一个帐户。

我的问题是相当基本的 vlcj 执行。我有一个作为音频播放器运行的程序。除了一个我似乎无法弄清楚的问题外,一切都已完成。

当有人试图在文件路径中播放带有 'é'(e 带锐音)的歌曲时,它似乎将错误转换为 vlcj 的系统。

例子:
我跑:

mediaPlayerComponent.getMediaPlayer().playMedia("file:///C:\\test.mp3");
  //(where mediaPlayerComponentis my is my local instantiated
  // EmbeddedMediaPlayerComponent)

这玩得很好。但如果我跑:
mediaPlayerComponent.getMediaPlayer().playMedia("file:///C:\\é.mp3");

它不运行任何东西。
  • 如果我调用 startMedia 而不是 playMedia,则 boolean 返回值为 false。
  • 我也试过它前面没有'file:///',这在功能上不会改变任何事情,除非我杀死程序,然后我收到'libdvdread'错误消息,例如:
    libdvdread: Could not open C:\?.mp3 with libdvdcss.
    

  • 因此,让问题简短而甜蜜:我如何提供正确的“mrl”以使 vlcj 播放我的“é.mp3”。和/或需要哪些 MediaOptions 来解析正确的编码(我假设我的错误在这里?)

    先发制人地抱歉没有提供 SSCCE,我认为这无关紧要。
    感谢您的时间。

    最佳答案

    经过一些插曲,我终于发现出了什么问题。显然,在 Windows 下,国际字符并不能很好地解析为 VLCJ。通过增加:

    <jvmarg value="-Dvlcj.log=DEBUG>
    

    到我的 ANT 运行脚本,我突然可以用 e-acute 播放文件。显然,JVM 的解码器在初始化时已完成。

    希望这对某人有所帮助:-)

    关于java - vlcj mlr 特殊字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11507633/

    10-10 16:53