vlcj (http://code.google.com/p/vlcj/) を使用して、Java で vlc ライブラリを使用して画面を記録します。Win7 と XP を使用しています (両方のプラットフォームでエラーが表示されます)。
画面の記録を開始および停止するための開始および停止メッセージを取得するプラットフォームでtelnetサーバーを実行しています。複数の録音が行われると、次のエラーが表示されます。
screen demux error: Cannot create bitmap
次に、telnet サーバーを停止して再起動すると、再び画面キャプチャーができるようになります。私の質問は、このエラー メッセージが表示される理由と、時々サーバーを再起動する必要がないように解決するにはどうすればよいかということです。以下は、記録を開始するコードのスニペットです (残念ながら、telnet サーバーのコード全体を提供することはできません)。
NativeLibrary.addSearchPath("vlc", libvlcPath); //libvlcPath is a String with the specified path
System.setProperty("jna.library.path", libvlcPath);
MediaPlayerFactory factory = new MediaPlayerFactory("--no-video-title-show");
EmbeddedMediaPlayer mediaPlayer = factory.newEmbeddedMediaPlayer();
File videoFile = new File(savePath + fileName + ".mp4");
String[] options = {":sout=#transcode{vcodec=h264,acodec=mp4a}:std{access=file,mux=mp4,dst=" + videoFile + "}", ":screen-fps=5.0"};
mediaPlayer.playMedia("screen://", options);
そして、記録を停止するコード:
mediaPlayer.stop();
mediaPlayer.release();
また、Mac OS と Ubuntu 10.04 で telnet サーバー (まったく同じコード) を実行しましたが、エラーは発生しませんでした。それで、それは一般的にWindowsと関係がありますか?