vlcj mlr特殊字符

时间:2012-07-16 15:37:44

标签: java encoding vlcj

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

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

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

实施例: 我跑:

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

这很好。但如果我跑:

mediaPlayerComponent.getMediaPlayer().playMedia("file:///C:\\é.mp3");

它没有运行任何东西。

  • 如果我调用startMedia而不是playMedia,则布尔返回值为false。

  • 我也试过没有前面的'file:///',这并没有在功能上改变一个东西,除非我杀了程序,然后我得到一个'libdvdread'错误消息,如:

    libdvdread: Could not open C:\?.mp3 with libdvdcss.
    

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

对于没有提供SSCCE,我们认为这是不相关的。 谢谢你的时间。

3 个答案:

答案 0 :(得分:0)

经过一番插曲,我终于发现了什么问题。显然,在Windows下,国际字符并没有真正解析为VLCJ。添加:

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

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

希望这有助于某人: - )

答案 1 :(得分:0)

通过检测包含Unicode字符的本地文件名并将这些文件名转换为百分比编码的文件URL,可以在vlcj 2.4.0中透明地处理。

因此,对于当前版本的vlcj,您应该只需将包含国际字符的文件名直接传递给mediaPlayer.playMedia(...)。

答案 2 :(得分:0)

我在这里找到了解决方案:

https://github.com/caprica/vlcj/issues/415

这对我在Mac和Windows上的工作(vlcj-3.7.0):

jQuery(document).ready(function(){
  var $sign = jQuery('#input_2_204_data');   

  $sign.change(function() {
    if($sign.val() != '') {
      alert( "Handler for .change() called." );
    }
  });
});

我可以帮助任何人:)