2017-02-10 5 views
0

vlcのハードウェアアクセラレーションオプションを無効にして、グラフィックカードのドライバのバグによる遅延問題を回避したいと考えています。私はprepareMediaメソッドでそのオプションを渡そうとしました。それは助けにはなりませんでした(私がコマンドラインで行ったときのように:vlc --no-overlay 'path-to-video')。実際には、再生を少し遅らせるように見えました。以下は、プレイヤーを設定するためのコードの一部です。私は実際にplayMedia(「パスからビデオ」、「 - no-overlay」)を試しましたが、どちらもうまくいきませんでした。vlcjメディアオプション "--no-overlay"が機能しません。

mediaPlayerComponent = new EmbeddedMediaPlayerComponent(); 
player = mediaPlayerComponent.getMediaPlayer(); 
... 
player.prepareMedia("path-to-video","--no-overlay"); 

答えて

0

メディアを再生するときMediaPlayerFactoryを作成するのではなく時にこれらのオプションの一部を渡す必要があります - それは、このようなものだ理由として、よくそれはLibVLCが動作するだけでどのようです。

あなたがEmbeddedMediaPlayerComponentを使用している場合は、それらのオプションを提供するために、このような何かを行うことができます。あなたには、いくつかの他のものを指定したいかもしれないので、これはデフォルトのメディアプレーヤーの工場の引数を置き換えること

mediaPlayerComponent = new EmbeddedMediaPlayerComponent() { 
    protected String[] onGetMediaPlayerFactoryArgs() { 
     return new String[] {"--no-overlay"}; 
    } 
} 

は注意あまりにも - これらはデフォルトです:

protected static final String[] DEFAULT_FACTORY_ARGUMENTS = { 
    "--video-title=vlcj video output", 
    "--no-snapshot-preview", 
    "--quiet-synchro", 
    "--sub-filter=logo:marq", 
    "--intf=dummy" 
}; 

だからそれはあなたがそのようなネイティブVLCオプションを設定する方法であるが、この特定のオプションは、あなたが実際にやりたい(および他の辺eのないでしょうか他の問題です。

+0

ありがとうございました!それは私がしたいことをします - コマンドラインで--no-overlayオプションを渡した場合と同じです:) –

関連する問題