StageVideo в полноэкранном режиме

Хорошо, я пытаюсь выяснить, если это ошибка или я делаю что-то не в порядке здесь.

Я использую Mac OS X 10.10.3 Flex SDK 4.12 с Air 4.0

Я пытаюсь воспроизвести StageVideo с NetStream, который поступает с карты захвата. Это все работает отлично, пока я не хочу, чтобы видео воспроизводилось во весь экран.NETStream передает видеопоток 720x480, и если я установил для окна просмотра Stagevideo любой размер, он учитывает масштаб 1:1 и масштабируется соответственно. Но, когда я перехожу в полноэкранный режим и устанавливаю область просмотра на ширину и высоту сцены, видео, кажется, масштабируется правильно... однако только верхние 720x480 пикселей видео показывают (как если бы оно маскировалось размерами источника видео?!?). Если затем я нажимаю escape, чтобы выйти из полноэкранного режима (с шириной и высотой моего приложения, равными даже размеру моего экрана)... сценическое видео должным образом заполняет весь экран (но, конечно, с панелями инструментов Mac).

На данный момент я думаю, что это ошибка? Я попытался изменить порядок событий (сначала в полноэкранном режиме, затем инициализировать видео... сначала инициировать видео, затем перейти в полноэкранный режим и сбросить окно просмотра), но получить те же результаты в любом порядке.

protected function init():void{
            stage.scaleMode = StageScaleMode.NO_SCALE;
            stage.addEventListener(StageVideoAvailabilityEvent.STAGE_VIDEO_AVAILABILITY, onStageVideoState); 
        }

        private function onStageVideoState(event:StageVideoAvailabilityEvent):void {
            stage.removeEventListener(StageVideoAvailabilityEvent.STAGE_VIDEO_AVAILABILITY, onStageVideoState); 
            if(event.availability == StageVideoAvailability.AVAILABLE){
                _video = stage.stageVideos[0];
                _video.addEventListener(StageVideoEvent.RENDER_STATE, onStageVideoRenderStateChange);

                // this captures the cam and feeds it through a NetStream to the StageVideo... this part works fine
                var capture:CaptureDevice = new CaptureDevice();
                capture.play(ffmpeg, _video);
            } else {
                // borked
            }
        }

        private function onStageVideoRenderStateChange(event:Object):void {
            stage.addEventListener(FullScreenEvent.FULL_SCREEN, onFullScreen);
            stage.displayState = StageDisplayState.FULL_SCREEN;
        }

        private function onFullScreen(event:FullScreenEvent):void{
            stage.removeEventListener(FullScreenEvent.FULL_SCREEN, onFullScreen);
            _video.viewPort = new Rectangle(0,0,stage.stageWidth, stage.stageHeight);
        }

кто-нибудь еще видел эту странность? Вот снимок маскировки в полноэкранном режиме:странная маскировка сценического видео

1 ответ

У меня возникла похожая проблема, за исключением воспроизведения 1920 x 1080 mp4.

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

private function init():void
{
    //Dodgy Timer Hack
    //Fixes fullscreen issue with stageVideo
    var timer:Timer = new Timer(5000,1);
    timer.addEventListener(TimerEvent.TIMER, addedToStage);
    timer.start();
} 

private function addedToStage(e:Event):void
{
    stage.displayState = StageDisplayState.FULL_SCREEN_INTERACTIVE;
    stage.scaleMode = StageScaleMode.SHOW_ALL;
    stage.align = StageAlign.TOP_LEFT;

    initVideo();
}
Другие вопросы по тегам