ok Я пытаюсь выяснить, является ли это ошибкой, или я делаю что-то не по порядку здесь.StageVideo в режиме FullScreen
Я на макинтоше под управлением OS X 10.10.3 Flex SDK 4.12 с Air 4.0
Я пытаюсь играть StageVideo из NetStream, что кормление в с карты захвата. Все работает отлично, пока я не хочу, чтобы видео воспроизводилось в полноэкранном режиме. NetStream подает видеоролик 720x480, и если я установил видовое окно Stagevideo на любой размер, он будет точно оценивать масштаб 1: 1 и масштабировать его соответственно. Но, когда я иду в полноэкранном режиме и устанавливаю видовое окно на ширину и высоту сцены, видео, кажется, правильно масштабируется ... однако только верхние 720x480 пикселей видеороликов (как будто они замаскированы размерами видеоисточника ?! ?). Если я затем удалю бежать, чтобы выйти из полноэкранного режима (с шириной и высотой моего приложения, установленным на мой размер экрана даже) ... видео на сцене правильно заполняет весь экран (но, конечно же, с помощью панели инструментов для инструментов).
На данный момент я думаю, что это ошибка? Я попытался изменить порядок событий (сначала в полноэкранном режиме, затем сначала запустите видео ... сначала запустите видео, затем перейдите в полноэкранный режим и сбросьте область просмотра), но получите одинаковые результаты в любом порядке.
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);
}
кто-нибудь еще видел эту странность? Вот кадр из этой маскировки в полноэкранном режиме:
Вы нашли решение? – davivid
печально нет ... Я закончил тем, что использовал обычный видеоролик для проекта, над которым я работал, когда обнаружил это. Хотелось бы узнать ответ, хотя, если вы, ребята, возитесь и найдите что-то, чего я не сделал. –