隨筆 - 8  文章 - 55  trackbacks - 0
          <2025年5月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          常用鏈接

          留言簿(6)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          朋友的Blog

          最新評論

          閱讀排行榜

          評論排行榜

          FCS camera對象的使用
          這一節(jié)主要講述camera對象的使用,包括camera的使用優(yōu)化、設置合適的帶寬和如果使得一個camera用于多個應用程序。
          Camera對象允許你從攝影機捕捉視頻并追加到任何一個MC中,當使用FlashMx Com server的時候,還可以在聯機對象間傳輸、顯示,甚至錄制捕捉到的視頻。應用這個特性,你可以開發(fā)例如視頻會議、視頻聊天等應用程序。當然你也可以不通過服務器來使用Camera對象,例如可以捕捉你的視頻并附加到某個MC。
          Camera常用的屬性:
            ?
          1. bandWidth?每秒種傳送的最大字節(jié)數
            ?
          2. currentFps?當前傳送的fps值
            ?
          3. fps?setMode方法設定的fps值
            ?
          4. name?當前使用的攝像機名稱
            ?
          5. names?可用視頻捕捉設備的數組
            ?
          6. index?可以視頻設備的索引值
            ?
          7. keyFrameInterval?關鍵幀間隔
            ?
          8. loopback?是否壓縮影像
            ?
          9. motionLevel?靈敏度0~100?數值越高動作越遲鈍
          10. width?影像的寬度
          11. height?影像的高度
          12. quality?傳送的影像品質0~100
          13. muted?客戶端是否允許Flash取用本地端的攝像機
          14. currentFps?當前傳送的fps值
            ?
          15. fps?setMode方法設定的fps值
            ?
          16. name?當前使用的攝像機名稱
            ?
          17. names?可用視頻捕捉設備的數組
            ?
          18. index?可以視頻設備的索引值
            ?
          19. keyFrameInterval?關鍵幀間隔
            ?
          20. loopback?是否壓縮影像
            ?
          21. motionLevel?靈敏度0~100?數值越高動作越遲鈍
          22. width?影像的寬度
          23. height?影像的高度
          24. quality?傳送的影像品質0~100
          25. muted?客戶端是否允許Flash取用本地端的攝像機



          需要創(chuàng)建Camera對象,使用下面代碼:
          1 : MyCamera = Camera.get();
          2 : //如果有多個視頻設備,請使用index(索引值)指定設備
          3 : MyCamera = Camera.get(index);
          4 :

          如果在不同的網域訪問,就會彈出窗口讓用戶確認使用或是拒絕使用:
          圖片點擊可在新窗口打開查看

          當用戶對彈出窗口響應后就會觸發(fā)onStatus事件,請參考muted參數
          當然也可以記住用戶的選擇,點擊鼠標右鍵出現設置窗口
          圖片點擊可在新窗口打開查看

          在該窗口選擇允許,并選中記住,下次就不會彈出確認窗口了。
          更高級的示例是彈出設備選擇窗口讓用戶選擇:
          1 : camArray = Camera.names;
          2 : if (camArray.length == 1){
          3 : Camera.get();
          4 : }
          5 : else
          6 : System.showSettings(3);//彈出視頻設置窗口
          7 : Camera.get();

          圖片點擊可在新窗口打開查看


          Flashcomguru 的 arckid 提供了一個很好的檢測Camera的方法,把它略作修改如下
          01 : function checkforCam() {
          02 : camArray = Camera.names;
          03 : if (camArray.length >= 1){
          04 : temp_cam = Camera.get();
          05 : if(temp_cam == -1)
          06 : trace('視頻設備正忙');
          07 : else
          08 : trace('視頻設備可用');
          09 : delete temp_cam;
          10 : } elseif (camArray.length == 0) {
          11 : trace('沒有視頻設備');
          12 : }
          13 : }
          14 : //-----------------------------------------------------------------
          15 : //或者下面的函數更精簡:
          16 : function checkForCam(){
          17 : return Camera.names.length;
          18 : }
          19 : function isCamBusy(){
          20 : if(arguments.length) return Camera.get(arguments[0]) == -1;
          21 : return Camera.get() == -1;
          22 : }
          23 :


          ip地址已設置保密
          2006-2-28 13:03:12
          netfound
          帥哥喲,離線,有人找我嗎?
          頭銜:CMS服務者
          等級:超級版主
          文章:407
          積分:4438
          門派:無門無派
          注冊:2006年2月6日
          2
          ?用支付寶給netfound付款或購買其商品,支付寶交易免手續(xù)費、安全、快捷!點擊這里發(fā)送電子郵件給netfound

          發(fā)貼心情
          要設置Camera對象的模式,可以用setMode()方法,如下:
          1 : MyCamera.setMode(width, height, fps [, favorSize])
          2 : //width,height 是Camera對象寬高,默認值是160×120
          3 : //fps 捕捉視頻的速率 默認值是15
          4 : //favorSize 是一個可選的布爾值,默認為true,表示采用最大匹配當前的窗口大小的速率,如果設為false,則會優(yōu)先考慮影像的流暢度。

          不同帶寬的建議設置
          默認的Camera設置對所有的帶寬提供了一個相同的足夠好的傳輸品質,如果需要手動設置以適應不同的帶寬要求,設置Camera參數的方法如下:
          1. MyCamera.setQuality(bandwidth,?frameQuality)
          2. //bandwidth?頻寬指每秒傳送的最大字節(jié)數?默認為16384?如果設為0則維持frameQuality設定的影像品質,盡量使用最大頻寬
          3. //freamQuality?影像的壓縮品質1~100,設為0表示在bandwidth設定范圍內自動調整影像品質

            ?

          4. //bandwidth?頻寬指每秒傳送的最大字節(jié)數?默認為16384?如果設為0則維持frameQuality設定的影像品質,盡量使用最大頻寬
          5. //freamQuality?影像的壓縮品質1~100,設為0表示在bandwidth設定范圍內自動調整影像品質

            ?

          6. //bandwidth?頻寬指每秒傳送的最大字節(jié)數?默認為16384?如果設為0則維持frameQuality設定的影像品質,盡量使用最大頻寬
          7. //freamQuality?影像的壓縮品質1~100,設為0表示在bandwidth設定范圍內自動調整影像品質

            ?

          8. //freamQuality?影像的壓縮品質1~100,設為0表示在bandwidth設定范圍內自動調整影像品質

          ?

          ?
          ip地址已設置保密
          2006-2-28 13:04:57
          netfound
          帥哥喲,離線,有人找我嗎?
          頭銜:CMS服務者
          等級:超級版主
          文章:407
          積分:4438
          門派:無門無派
          注冊:2006年2月6日
          3
          ?用支付寶給netfound付款或購買其商品,支付寶交易免手續(xù)費、安全、快捷!點擊這里發(fā)送電子郵件給netfound

          發(fā)貼心情

          ?下面對不同的帶寬給出了建議設置:
          ?
          [ Modem? ]
          ?
          較低畫質,較高動作流暢度 my_cam.setQuality(4000,0)
          ?
          較高畫質,較低動作流暢度 my_cam.setQuality(0,65)
          ?
          [ DSL ]
          ?
          較低畫質,較高動作流暢度 my_cam.setQuality(12000,0)
          ?
          較高畫質,較低動作流暢度 my_cam.setQuality(0,90)
          ?
          [ LAN ]
          ?
          較低畫質,較高動作流暢度 my_cam.setQuality(400000,0)
          ?
          較高畫質,較低動作流暢度 my_cam.setQuality(0,100)


          打開和設置完Camera之后后要附加到一個視頻實體才可以顯示
          MyVideo.attachVideo(MyCamera);

          ?

          正常關閉camera
          如果你的應用程序使用camera對象和NetStream對象記錄數據,camera仍然保持打開狀態(tài),為了確保關閉Camera對象,請在結束的時候使用
          NetStream.attachVideo(false)

          ?

          在多個應用程序中使用同一個Camera
          多個應用程序(swfs)可以在同時使用一個Camera。一般而言,多個瀏覽器窗口使用相同的進程,所以在瀏覽器環(huán)境中多個應用程序可以正常使用同一個Camera。但是,如果一個是在瀏覽器中運行,一個是獨立應用程序,就不能共享使用同一個Camera,因為Camera不能被多個進程共享。

          事件響應
          在Camera有兩個重要的事件響應
          1. onStatus事件 muted屬性變化會觸發(fā)該事件
          原參考手冊中的一個示例可以說明onstatus的用法
          01 : myCam = Camera .get ();
          02 : myVideoObject.attachVideo(myCam);
          03 : myCam.onStatus = function ( infoMsg ) {
          04 : if ( infoMsg.code == 'Camera.Muted' )
          05 : {
          06 : trace ( 'User denies access to the camera' );
          07 : }
          08 : else
          09 : trace ( 'User allows access to the camera' );
          10 : }
          11 : // Change the Allow or Deny value to invoke the function
          12 : System .showSettings(0);

          2. onActivity事件 視頻是否活動的事件響應
          請參考原手冊的范例:
          1 : // Assumes a Video object named 'myVideoObject' is on the Stage
          2 : c = Camera.get();
          3 : myVideoObject.attachVideo(c);
          4 : c.setMotionLevel(10, 500);
          5 : c.onActivity = function (mode)
          6 : {
          7 : trace(mode);
          8 : };

          posted on 2006-06-04 20:08 blog搬家了--[www.ialway.com/blog] 閱讀(494) 評論(0)  編輯  收藏 所屬分類: FMS
          主站蜘蛛池模板: 凤冈县| 宜兴市| 独山县| 彭山县| 菏泽市| 新田县| 兴仁县| 南宁市| 钟祥市| 嘉善县| 普陀区| 临猗县| SHOW| 武功县| 三门峡市| 常山县| 大名县| 咸阳市| 清水河县| 丘北县| 河间市| 永新县| 资源县| 贵州省| 昌江| 东阳市| 江北区| 尼玛县| 呼图壁县| 馆陶县| 吐鲁番市| 磴口县| 巴彦县| 大港区| 绿春县| 安丘市| 卢湾区| 疏附县| 华坪县| 海盐县| 宾川县|