首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FullScreen模式下的StageVideo

FullScreen模式下的StageVideo
EN

Stack Overflow用户
提问于 2015-03-26 01:05:06
回答 1查看 389关注 0票数 1

好的,我正在试着找出这是一个bug,还是我做了一些乱七八糟的事情。

我在mac上运行OS X 10.10.3 Flex SDK 4.12和Air 4.0

我正在尝试从从捕获卡送入的NetStream播放StageVideo。这一切都很完美,直到我想让视频全屏播放。NetStream提供了一个720x480的视频流,如果我将Stagevideo视口设置为任意大小,它会很好地支持1:1缩放,并相应地缩放。但是,当我全屏显示并将视区设置为舞台的宽度和高度时,视频似乎被正确缩放了……然而,只有视频的顶部720x480像素显示(就好像它被视频源尺寸遮蔽了?!?)。如果我点击退出退出全屏(我的应用程序的宽度和高度设置为我的屏幕尺寸)…舞台视频恰到好处地填满了整个屏幕(当然,还会显示mac工具栏)。

在这一点上,我认为这是一个错误?我试着颠倒了事件的顺序(首先全屏,然后初始化视频……首先初始化视频,然后全屏并重置视口),但无论按哪种顺序都会得到相同的结果。

代码语言:javascript
复制
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);
        }

还有人见过这个怪异吗?这是它在全屏中屏蔽的一张照片:

EN

回答 1

Stack Overflow用户

发布于 2015-09-28 20:27:12

除了玩1920x1080的mp4之外,我也遇到过类似的问题。

我发现我可以使用计时器来解决这个问题。视频不再被屏蔽到四分之一大小,菜单栏被隐藏。

代码语言:javascript
复制
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();
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29261988

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档