4

私は何年もの間この素晴らしいサイトをストーカーしてきました。今日、私は問題に行き詰まったときにようやくアカウントを作成することにしました。

私の問題は、かなり基本的なvlcjの実行です。オーディオプレーヤーとして実行しているプログラムがあります。私が理解できないように見える1つの問題を除いて、それはすべて行われます。

誰かがファイルパスに「é」(急性のe)を含む曲を再生しようとすると、vlcjのシステムに間違って変換されているようです。

例:実行します:

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

そして、これはうまくいきます。しかし、私が実行した場合:

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

何も実行されません。

  • playMediaの代わりにstartMediaを呼び出すと、ブール値の戻り値はfalseになります。

  • また、前に「file:///」を付けずに試してみましたが、プログラムを強制終了した場合を除いて、機能的には変更されません。次のような「libdvdread」エラーメッセージが表示されます。

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

質問を短くて甘くするために:vlcjに私の「é.mp3」を再生させるために正しい「mrl」を提供するにはどうすればよいですか。および/または正しいエンコーディングを解析するために必要なMediaOptions(エラーはここにあると思いますか?)

SSCCEを提供しなかったことを先制的に申し訳ありませんが、私はそれが適切であるとは思いません。お時間をいただきありがとうございます。

4

3 に答える 3

0

いくつかの間奏の後、私はついに何が悪かったのかを知りました。明らかに、Windowsの下では、国際的な文字はVLCJに非常によく解析されます。追加することにより:

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

ANT実行スクリプトに対して、突然e-acuteでファイルを再生できるようになりました。明らかに、JVMのデコーダーは初期化時にファイナライズされます。

これが誰かに役立つことを願っています:-)

于 2012-08-08T09:31:50.797 に答える
0

ここで解決策を見つけました:

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

これは、MacおよびWindows(vlcj-3.7.0)で機能します:

  public void play(String mrlPathFile) {
    // URI encode for avoid non ascii character problem in windows!!!
    mrlPathFile = new File(mrlPathFile).toURI().toASCIIString().replace("file:/", "file:///");
    mediaPlayer.playMedia(mrlPathFile);
}

私はこれが誰にでも役立つ可能性があります:)

于 2016-03-23T09:04:00.973 に答える