BlackBerry - Можно ли скрыть поле видео?

Я хочу написать приложение наподобие фонарика (с помощью светодиода камеры).

Player player = javax.microedition.media.Manager.createPlayer("capture://video?encoding=video/3gpp");

player.realize();

VideoControl videoControl = (VideoControl) player.getControl("VideoControl");
if(videoControl != null)
{
    videoField = (Field)videoControl.initDisplayMode( VideoControl.USE_GUI_PRIMITIVE, "net.rim.device.api.ui.Field" );
    try
    {
        videoControl.setDisplaySize(1, 1);
    }
    catch(Exception e)
    {
        PGLogUtil.logString(e.toString());
    }
    videoControl.setVisible(true);
    add(videoField);

    FlashControl flashControl = (FlashControl)
            player.getControl("javax.microedition.amms.control.camera.FlashControl");
    setFlashlight(true);
}
player.start();

Приведенный выше код работает отлично, но я хочу скрыть videoField. Когда я удалил add(videoField) или использую videoControl.setVisible(false), фонарик не работает. Может кто-нибудь объяснить, почему?

Как я могу включить свет с помощью скрытого videoField?


person CAMOBAP    schedule 01.03.2013    source источник
comment
Какую минимальную ОС вы должны поддерживать?   -  person Nate    schedule 19.05.2013
comment
возможно, попробуйте выдвинуть другой экран на передний план, или когда вы расширяете MainScreen, переопределяете краску и ничего там не делаете.   -  person Ajibola    schedule 27.05.2013
comment
Привет, CAMOBAP, ты нашел решение. Я также сталкиваюсь с той же проблемой здесь. Не могли бы вы помочь?   -  person Arindam Mukherjee    schedule 03.06.2013
comment
У меня до сих пор нет решения для всех устройств. Для некоторых устройств линия videoControl.setDisplaySize(1, 1) работает без исключения, а камера Field успешно скрыта   -  person CAMOBAP    schedule 03.06.2013


Ответы (1)


Я только что получил bb, у которого была вспышка, и я хотел попробовать свои силы в этой же проблеме. Я, наконец, заставил его работать в любом случае. Что я заметил в течение всего времени тестирования, так это то, что если видеополе скрыто, как вы сказали, вспышка не будет работать ... Так что трюк, который я сделал, был

    <pre>
    _videoControl.setDisplaySize( 1 , 1 );
    </pre>

И это помогло мне. Вы также можете установить его на

    <pre>
    _videoControl.setDisplaySize( 0 , 0 );
    </pre>

Но что бы вы ни делали ... убедитесь, что вы установили

    <pre>
    _videoControl.setVisible(true);
   </pre>

иначе ваша вспышка не будет работать

person Nuel    schedule 18.08.2013
comment
Этот ответ является просто повторением того, что было опубликовано в вопросе. Какую новую информацию вы добавляете? - person Nate; 19.08.2013
comment
@Nate: Он спросил, как он может скрыть поле видео, и я предложил ему установить размер экрана элемента управления... - person Nuel; 20.08.2013
comment
вы только что повторили точный код, который, по его словам, он уже пробовал. - person Nate; 20.08.2013