我使用 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有关吗?