Я пытаюсь программно сделать снимок экрана браузера, со звуком, используя Java. В настоящее время я использую пакет monte media со следующим кодом, но при каждой конфигурации аудио, которую я использую, видео портится (и фактически не добавляет аудио). Вот соответствующий код:
GraphicsConfiguration gc = GraphicsEnvironment
.getLocalGraphicsEnvironment()
.getDefaultScreenDevice()
.getDefaultConfiguration();
screenRecorder = new ScreenRecorder(gc,
new Format(MediaTypeKey, MediaType.FILE, MimeTypeKey, MIME_AVI),
new Format(MediaTypeKey, MediaType.VIDEO, EncodingKey, ENCODING_AVI_TECHSMITH_SCREEN_CAPTURE,
CompressorNameKey, ENCODING_AVI_TECHSMITH_SCREEN_CAPTURE,
DepthKey, 24, FrameRateKey, Rational.valueOf(15),
QualityKey, 1.0f,
KeyFrameIntervalKey, 10000 * 60),
new Format(MediaTypeKey, MediaType.VIDEO, EncodingKey, "black",
FrameRateKey, Rational.valueOf(30)),
/* //THIS AUDIO FORMAT DOESN'T WORK, BUT I PUT IT HERE
//AS AN EXAMPLE OF WHERE I'VE BEEN TRYING TO
//CONFIGURE THE AUDIO
new Format(MediaTypeKey, MediaType.AUDIO,
EncodingKey, ENCODING_PCM_SIGNED,
FrameRateKey, new Rational(48000, 1),
SampleSizeInBitsKey, 16,
ChannelsKey, 2, SampleRateKey, new Rational(48000, 1),
SignedKey, true, ByteOrderKey, ByteOrder.BIG_ENDIAN)
*/
null
);
screenRecorder.start();
Я пытался использовать следующий код для создания видео в формате QuickPlay, но это тоже не работает. Фактически, не только видео не отображается, но записываемый звук исходит от микрофона компьютера, а не с экрана. Вот этот код:
new Format(MediaTypeKey, MediaType.FILE,
MimeTypeKey, MIME_QUICKTIME),
//
// the output format for screen capture
new Format(MediaTypeKey, MediaType.VIDEO,
EncodingKey, ENCODING_QUICKTIME_ANIMATION,
CompressorNameKey, COMPRESSOR_NAME_QUICKTIME_ANIMATION,
DepthKey, 24, FrameRateKey, new Rational(15, 1)),
//
// the output format for mouse capture
new Format(MediaTypeKey, MediaType.VIDEO,
EncodingKey, ENCODING_BLACK_CURSOR,
FrameRateKey, new Rational(30, 1)),
//
// the output format for audio capture
new Format(MediaTypeKey, MediaType.AUDIO,
EncodingKey, ENCODING_QUICKTIME_TWOS_PCM,
FrameRateKey, new Rational(48000, 1),
SampleSizeInBitsKey, 16,
ChannelsKey, 2, SampleRateKey, new Rational(48000, 1),
SignedKey, true, ByteOrderKey, ByteOrder.BIG_ENDIAN));
Любая помощь здесь приветствуется, в том числе сообщается, что эта библиотека устарела и использует другую (но, пожалуйста, на самом деле, скажите мне, какова альтернатива).
Спасибо!