Потоковое видео с веб-камеры с JMF заставляет Windows 7 переключаться на основную тему - PullRequest
3 голосов
/ 13 декабря 2011

Моя Java-программа, которая открывает поток веб-камеры и передает захваченное видео в компонент Swing, работает, но когда я ее запускаю, она заставляет Windows переключаться на тему Basic.Это отрывок из моего кода:

String str1 = "vfw:Logitech USB Video Camera:0";
String str2 = "vfw:Microsoft WDM Image Capture (Win32):0";

captureDeviceInfo = CaptureDeviceManager.getDevice(str2);
Format[] formats = captureDeviceInfo.getFormats();
for (Format format : formats) {
    System.out.println(format);
}
mediaLocator = captureDeviceInfo.getLocator();
try {
    player = Manager.createRealizedPlayer(mediaLocator);
    player.start();
    Component comp;

    if ((comp = player.getVisualComponent()) != null) {
        playerPanel.add(comp);
        add(playerPanel, BorderLayout.NORTH);

    }

Если я закомментирую строку, в которой я добавляю comp в playerPanel, он не переключается на основную тему, поэтому я предполагаю, что это не так.Насколько я понимаю, JMF больше не поддерживается и, вероятно, не полностью совместима с Windows 7 Aero Theme.Но все же, есть ли способ это исправить?Почему он переключается?

Ответы [ 3 ]

0 голосов
/ 14 декабря 2011

Хорошо, ответ на этот вопрос заключался в установке драйверов веб-камеры.Я использую Logitech QuickCam Pro 9000, поэтому я только что скачал драйвер с веб-сайта Logitech.Очевидно, что если вы используете универсальный драйвер веб-камеры, предоставляемый Windows, вы можете получить поведение, описанное выше.

0 голосов
/ 04 ноября 2012

Чтобы решить эту проблему, добавьте следующее в ваш конструктор:

Manager.setHint (Manager.LIGHTWEIGHT_RENDERER, Boolean.TRUE);

Ваша проблема связана с тем, что Swing является легковесным, а рендеринг по умолчанию нацелен на тяжелые компоненты.

0 голосов
/ 13 декабря 2011

Поскольку вы сказали, что это происходит только тогда, когда вы добавляете компонент на панель проигрывателя (поэтому, когда видео видно), я думаю, что это может быть связано с проблемой, которая у меня когда-то была с Media Player Classic.

Из http://www.codecguide.com/faq_mpc.htm:

В: Aero отключается, и мой рабочий стол переключается в базовый режим при воспроизведении файла в MPC

A: Это может произойти, если вы выбрали неправильный рендерер видеов настройках MPC.Aero не совместим с оверлейным микшером.[...]

Вероятно, компонент проигрывателя использует этот оверлейный микшер для отображения видео.Попытайтесь выяснить, можете ли вы изменить его.

...