宜昌本地软件开发与弱电工程服务商
项目咨询 · 快速响应
您当前的位置: > 博客2 > AS2与AS3技术

[AS3]使用 StageVideoAvailabilityEvent.STAGE_VIDEO_AVAILABILI

2016-10-13 00:16:48 点击量:14 标签: 收藏本文

在 StageVideoAvailabilityEvent.STAGE_VIDEO_AVAILABILITY 处理函数中,根据 StageVideo 的可用性确定是使用 Video 对象还是使用 StageVideo 对象。如果StageVideoAvailabilityEvent.availability 属性设置为 StageVideoAvailability.AVAILABLE,则使用 StageVideo。在这种情况下,可依赖于 Stage.stageVideos 矢量来包含一个或多个 StageVideo 对象。从 Stage.stageVideos 属性获取 StageVideo 对象,并将 NetStream 对象附加到它。由于 StageVideo 对象始终显示在背景中,因此需删除所有现有的 Video 对象(始终位于前景中)。还可以使用此事件处理函数添加 StageVideoEvent.RENDER_STATE 事件的侦听器。

如果 StageVideoAvailabilityEvent.availability 属性设置为 StageVideoAvailability.UNAVAILABLE,请勿使用 StageVideo 或访问 Stage.stageVideos 矢量。在这种情况下,请将 NetStream 对象附加到 Video 对象。最后,请将 StageVideo 或 Video 对象添加到舞台,并调用 NetStream.play()

下面的代码显示如何处理 StageVideoAvailabilityEvent.STAGE_VIDEO_AVAILABILITY 事件:

  1. private var sv:StageVideo;  
  2. private var video:Video;  
  3.   
  4. private function onStageVideoState(event:StageVideoAvailabilityEvent):void  
  5. {      
  6.     // Detect if StageVideo is available and decide what to do in toggleStageVideo  
  7.     toggleStageVideo(event.availability == StageVideoAvailability.AVAILABLE);  
  8. }  
  9.   
  10. private function toggleStageVideo(on:Boolean):void  
  11. {      
  12.     // To choose StageVideo attach the NetStream to StageVideo  
  13.     if (on)  
  14.     {  
  15.         stageVideoInUse = true;  
  16.         if ( sv == null )  
  17.         {  
  18.             sv = stage.stageVideos[0];  
  19.             sv.addEventListener(StageVideoEvent.RENDER_STATE, stageVideoStateChange);  
  20.                 sv.attachNetStream(ns);  
  21.         }  
  22.   
  23.         if (classicVideoInUse)  
  24.         {  
  25.             // If you use StageVideo, remove from the display list the  
  26.             // Video object to avoid covering the StageVideo object  
  27.             // (which is always in the background)  
  28.             stage.removeChild ( video );  
  29.             classicVideoInUse = false;  
  30.         }  
  31.     } else  
  32.     {  
  33.         //CuPlayer.com提示 Otherwise attach it to a Video object  
  34.         if (stageVideoInUse)  
  35.             stageVideoInUse = false;  
  36.         classicVideoInUse = true;  
  37.         video.attachNetStream(ns);  
  38.         stage.addChildAt(video, 0);  
  39.     }  
  40.       
  41.     if ( !played )  
  42.     {  
  43.         played = true;  
  44.         ns.play(FILE_NAME);  
  45.     }  
  46. }  

 

ABOUT US
宜昌农人网络科技有限公司

我们是一家提供综合软件外包与弱电工程服务的技术公司。

业务涵盖定制软件、管理系统、网站、小程序、APP、系统集成、网络布线、监控安防、门禁、机房建设及长期技术维护。

公司地址:湖北省宜昌市伍家岗区东站二路6号三峡(宜昌)大数据产业园海洋馆二楼A203室