![](/img/trans.png)
[英]Flash Media Server: Trouble with recording 2 audio/video streams at the same time?
[英]Resize flash.media.Video
我無法調整包裝flash.media.Video
對象的自定義UIComponent
大小(我之所以選擇這種方式,是因為mx.control.VideoDisplay
不支持flash.media.Video
中可用的流播放, attachNetStream()
)。 一旦創建了320x240的Video
尺寸並將其從其父級中移除,就無法再用另一個更大或更小的Video
替換它了。
這是我的代碼(此代碼僅捕獲Camera而不是NetStream)。
package media
{
import flash.media.Camera;
import flash.media.Video;
import mx.controls.VideoDisplay;
import mx.core.UIComponent;
public class VideoUI extends UIComponent
{
private var video:Video;
public function VideoUI(width:int, height:int)
{
super();
video = new Video(width, height);
var cam:Camera = Camera.getCamera();
video.attachCamera(cam);
addChild(video);
}
}
}
另一部分
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[
import media.VideoUI;
private function addVideoOutput():void
{
// initial video size
var video:VideoUI = new VideoUI(160,120);
HBoxVideo.addChild(video);
}
protected function resizeVideo(event:MouseEvent):void
{
var videoList:Array = HBoxVideo.getChildren();
for (var i:int = 0; i < videoList.length; i++)
{
var video:VideoUI = videoList.pop();
HBoxVideo.removeChild(video);
// new size that produce the previous size :(
video = new VideoUI(320, 240);
HBoxVideo.addChild(video);
}
}
]]>
</mx:Script>
<mx:Button click="addVideoOutput()" x="10" y="265" label="add"/>
<mx:HBox x="10" y="10" width="100%" id="HBoxVideo">
</mx:HBox>
<mx:Button x="58" y="265" label="resize" click="resizeVideo(event)" id="resizeButton"/>
</mx:Application>
非常感謝你。
默認情況下,Video類的新實例寬320像素,高240像素。 您將需要在VideoUI類中訪問視頻 ,以便可以更改寬度和高度 。
如下:
將VideoUI.as中視頻變量的所有外觀更改為
_video
並應用吸氣劑。
新的視頻UI類
package media
{
import flash.media.Camera;
import flash.media.Video;
import mx.core.UIComponent;
public class VideoUI extends UIComponent
{
private var _video:Video;
public function VideoUI(width:int, height:int)
{
super();
_video = new Video(width, height);
var cam:Camera = Camera.getCamera();
_video.attachCamera(cam);
addChild(_video);
}
public function get video():Video{
return _video;
}
}
}
替換為主MXML文件
video = new VideoUI(320, 240);
與
video.video.width=320;
video.video.height=240;
注意:您應該將VideoUI實例重命名為videoui或排序。 這有點令人困惑。 您也可以將其移至VideoUI類或創建方法。 這是你的選擇。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.