2016-10-13 00:16:48 点击量:10 标签: 收藏本文
在 StageVideoAvailabilityEvent.STAGE_VIDEO_AVAILABILITY 处理函数中,根据 StageVideo 的可用性确定是使用 Video 对象还是使用 StageVideo 对象。如果 StageVideoAvailabilityEvent.availability 属性设置为 StageVid oAvailability.AVAILABLE,则使用 StageVideo。在这种情况下,可依赖于 Stage.stageVideos 矢量来包含一个或多个 StageVideo 对象。从 Stage.stageVideos 属性获取 StageVideo 对象,并将 NetStream 对象附加到它。由于 StageVideo 对象始终显示在背景中,因此需删除所有现有的 Video 对象(始终位于前景中)。还可以使用此事件处理函数添加 StageVideoEvent.RENDER_STATE 事件的侦听器。
如果 StageVideoAvailabilityEvent.availability 属性设置为 StageVid oAvailability.UNAVAILABLE,请勿使用 StageVideo 或访问 Stage.stageVideos 矢量。在这种情况下,请将 NetStream 对象附加到 Video 对象。最后,请将 StageVideo 或 Video 对象添加到舞台,并调用 NetStream.play()。
下面的代码显示如何处理 StageVideoAvailabilityEvent.STAGE_VIDEO_AVAILABILITY 事件:
- private var sv:StageVideo;
- private var video:Video;
- private function onStageVideoState(event:StageVideoAvailabilityEvent):void
- {
- // Detect if StageVideo is available and decide what to do in toggleStageVideo
- toggleStageVideo(event.availability == StageVideoAvailability.AVAILABLE);
- }
- private function toggleStageVideo(on:Boolean):void
- {
- // To choose StageVideo attach the NetStream to StageVideo
- if (on)
- {
- stageVideoInUse = true;
- if ( sv == null )
- {
- sv = stage.stageVideos[0];
- sv.addEventListener(StageVideoEvent.RENDER_STATE, stageVideoStateChange);
- sv.attachNetStream(ns);
- }
- if (classicVideoInUse)
- {
- // If you use StageVideo, remove from the display list the
- // Video object to avoid covering the StageVideo object
- // (which is always in the background)
- stage.removeChild ( video );
- classicVideoInUse = false;
- }
- } else
- {
- // Otherwise attach it to a Video object
- if (stageVideoInUse)
- stageVideoInUse = false;
- classicVideoInUse = true;
- video.attachNetStream(ns);
- stage.addChildAt(video, 0);
- }
- if ( !played )
- {
- played = true;
- ns.play(FILE_NAME);
- }
- }
我们是一家提供综合软件外包与弱电工程服务的技术公司。
业务涵盖定制软件、管理系统、网站、小程序、APP、系统集成、网络布线、监控安防、门禁、机房建设及长期技术维护。
公司地址:湖北省宜昌市伍家岗区东站二路6号三峡(宜昌)大数据产业园海洋馆二楼A203室