Захват экрана видео с аудио на Java - PullRequest
0 голосов
/ 11 ноября 2018

Я пытаюсь программно сделать снимок экрана браузера, со звуком, используя 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));

Любая помощь здесь приветствуется, в том числе сообщается, что эта библиотека устарела и использует другую (но, пожалуйста, на самом деле, скажите мне, какова альтернатива).

Спасибо!

...