Actionscript 3 全屏模式下的StageVideo

Actionscript 3 全屏模式下的StageVideo,actionscript-3,apache-flex,air,stagevideo,Actionscript 3,Apache Flex,Air,Stagevideo,好的,我正在试图弄清楚这是一个bug还是我在做一些不正常的事情 我在一台运行OS X 10.10.3的mac电脑上 带Air 4.0的Flex SDK 4.12 我正试图从一张捕获卡输入的NetStream中播放StageVideo。在我想让视频全屏播放之前,这一切都是完美的。NetStream正在传送一个720x480的视频流,如果我将Stagevideo视口设置为任意大小,它会很好地遵循1:1的缩放比例,并相应地进行缩放。但是,当我全屏显示并将视口设置为舞台宽度和高度时,视频似乎已正确缩放。

好的,我正在试图弄清楚这是一个bug还是我在做一些不正常的事情

我在一台运行OS X 10.10.3的mac电脑上 带Air 4.0的Flex SDK 4.12

我正试图从一张捕获卡输入的NetStream中播放StageVideo。在我想让视频全屏播放之前,这一切都是完美的。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);
        }
还有人看到过这种怪事吗?以下是全屏截图:

除了玩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();
}

你找到解决办法了吗?很遗憾没有。。。当我发现这一点时,我用了一个普通的视频来完成我正在做的项目。我很想知道答案,但如果你们能找到一些我没有的东西。