好的,我正在试着找出这是一个bug,还是我做了一些乱七八糟的事情。
我在mac上运行OS X 10.10.3 Flex SDK 4.12和Air 4.0
我正在尝试从从捕获卡送入的NetStream播放StageVideo。这一切都很完美,直到我想让视频全屏播放。NetStream提供了一个720x480的视频流,如果我将Stagevideo视口设置为任意大小,它会很好地支持1:1缩放,并相应地缩放。但是,当我全屏显示并将视区设置为舞台的宽度和高度时,视频似乎被正确缩放了……然而,只有视频的顶部720x480像素显示(就好像它被视频源尺寸遮蔽了?!?)。如果我点击退出退出全屏(我的应用程序的宽度和高度设置为我的屏幕尺寸)…舞台视频恰到好处地填满了整个屏幕(当然,还会显示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);
}还有人见过这个怪异吗?这是它在全屏中屏蔽的一张照片:

发布于 2015-09-28 20:27:12
除了玩1920x1080的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();
}https://stackoverflow.com/questions/29261988
复制相似问题