隨筆 - 8  文章 - 55  trackbacks - 0
          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          常用鏈接

          留言簿(6)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          朋友的Blog

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          NetStream對(duì)象
          NetStream對(duì)象是在所有聯(lián)機(jī)對(duì)象之間傳遞影音串流。如果你僅僅是為了傳遞文字聊天內(nèi)容,使用共享對(duì)象就可以解決,不必要使用這個(gè)對(duì)象。
          該對(duì)象的基本屬性有
          time 到目前為止,串流資料播放的秒數(shù)
          bufferTime 緩沖區(qū)的最大秒數(shù)
          currentFps 當(dāng)前播放影像的速率(每秒幀數(shù))
          bufferLength 當(dāng)前緩沖區(qū)的資料秒數(shù)
          liveDelay 實(shí)時(shí)播放視頻流的間隔
          但是當(dāng)你想知道當(dāng)前播放的影像的總長(zhǎng)度的時(shí)候,必須調(diào)用服務(wù)器端的方法才可以,因?yàn)榭蛻舳说腇lashPlayer是無法獲知數(shù)據(jù)流的總長(zhǎng)的。你需要在客戶端寫如下方法:
          01 : function getInfo()
          02 : {
          03 : nc.call( 'sendInfo', new MyResultSetName(), myStream);
          04 : }
          05 : function MyResultSetName()
          06 : {
          07 : this.onResult = function ( retVal )
          08 : {
          09 : _root.streamlength = retVal;
          10 : };
          11 : this.onStatus = function(info)
          12 : {
          13 : trace ( 'Level:' + info.level + 'Code:' + info.code);
          14 : // process error object
          15 : };
          16 : }


          然后在服務(wù)器端的main.asc文件中的相關(guān)事件中寫入:
          01 : application.onAppStart = function ()
          02 : {
          03 : trace('::: Application has started :::');
          04 : }
          05 : application.onConnect = function (client)
          06 : {
          07 : application.acceptConnection (client);
          08 : // Add methods
          09 : client.prototype.sendInfo = function (name) {
          10 : var slen = Stream.length (name);
          11 : trace ( 'slen:' + slen);
          12 : return slen;
          13 : };
          14 : }


          相關(guān)方法參考:
          setBufferTime ( 秒數(shù))
          可以設(shè)置緩沖區(qū)的大小以提高低品質(zhì)的網(wǎng)絡(luò)情況
          注意:bufferLength大小總是不大于bufferTime

          attachVideo ( 影像來源,[ 拍攝模式 ] )
          將攝像機(jī)對(duì)象的影像追加給串流對(duì)象,如果影像來源為null,將停止捕捉影像
          拍攝模式省略表示捕捉連續(xù)的影像;若為0則只拍攝單元格畫面;大于0,將以此數(shù)值為秒數(shù)間隔,連續(xù)拍攝單元格影像。

          attactAudio ( 聲音來源 )
          將麥克風(fēng)的音源設(shè)定給串流對(duì)象

          publish ( 串流資料名,[ 播出方式 ])
          如果串流資料名沒有指定則停止播出
          播出方式有l(wèi)ive(默認(rèn)值)實(shí)時(shí)播出但不存儲(chǔ);record 播出同時(shí)以串流資料名.flv文件存儲(chǔ),路徑為應(yīng)用程序路徑下面的streams文件夾;append 播出的同時(shí)追加到指定名稱的flv文件中,如果不存在,則自動(dòng)創(chuàng)建。

          pause()
          暫停、開始播放

          close ()
          停止發(fā)布或播放當(dāng)前所有數(shù)據(jù)流,把 NetStream.time 屬性設(shè)置為 0, 使得其它客戶端可以使用該數(shù)據(jù)流,該方法當(dāng)你使用 NetStream.play() 或NetStream.publish() 的時(shí)候被隱含調(diào)用

          play( 串流名稱,起始時(shí)間,長(zhǎng)度,是否清除前一個(gè)串流 )
          起始時(shí)間默認(rèn)值為-2 表示flash會(huì)先嘗試播放實(shí)時(shí)影音,否則就播放指定識(shí)別名稱的文件
          若為-1 將只播放實(shí)時(shí)影音 若為0 將只播放指定名稱的錄像內(nèi)容
          長(zhǎng)度參數(shù)指定影音播放的秒數(shù) 默認(rèn)為-1 表示一直播放到結(jié)束 為其它值為播放到指定秒數(shù)的內(nèi)容

          receiveVideo(fps)
          指定播放串流的速率fps設(shè)定為0時(shí),flash將停止播放影像

          seek(秒數(shù))
          快倒倒錄像文件倒指定秒數(shù)的畫面,如果設(shè)為0,則跳轉(zhuǎn)到開頭
          可以使用相對(duì)時(shí)間來跳轉(zhuǎn),如
          client_ns.seek(client_ns.time-3)

          如果要在傳輸音頻或視頻流的同時(shí),包含文本數(shù)據(jù)等,也就是說進(jìn)行數(shù)據(jù)交換,則可以使用send方法。
          可以在客戶端包含下面的actionscript:
          1 : var my_nc:NetConnection = new NetConnection();
          2 : my_nc.connect('rtmp://myServer.myDomain.com/appName/appInstance');
          3 : var my_ns:NetStream = new NetStream(my_nc);
          4 : my_ns.publish('slav', 'live');
          5 : my_ns.send('Fun', 'this is a test');

          在接收端可以使用下面代碼:
          1 : var my_nc:NetConnection = new NetConnection();
          2 : my_nc.connect('rtmp://myServer.myDomain.com/appName');
          3 : my_ns = new NetStream(my_nc);
          4 : my_ns.play('slav', -1, -1);
          5 :
          6 : my_ns.Fun = function(str) { //Fun is the handler name
          7 : trace (str);
          8 : }
          關(guān)閉視頻流的幾種方法:
          1 : myStream_ns.publish(false);// 停止整個(gè)串流
          2 : myStream_ns.close();//關(guān)閉串流,當(dāng)然也就停止了串流播放
          3 : mystream_ns.attachVideo(null);//僅僅停止視頻播放,仍然保持音頻播放.
          posted on 2006-06-03 18:57 blog搬家了--[www.ialway.com/blog] 閱讀(1239) 評(píng)論(0)  編輯  收藏 所屬分類: FMS
          主站蜘蛛池模板: 苏州市| 肥乡县| 信阳市| 吉安市| 东兴市| 大庆市| 宽甸| 闸北区| 谢通门县| 抚远县| 博白县| 都江堰市| 沾益县| 麦盖提县| 蒙城县| 监利县| 河南省| 玉山县| 龙南县| 剑阁县| 茶陵县| 邳州市| 敖汉旗| 商南县| 从江县| 内黄县| 封丘县| 山西省| 陆良县| 塔河县| 鄯善县| 广安市| 洪洞县| 边坝县| 双辽市| 汝州市| 天全县| 新巴尔虎左旗| 门头沟区| 长垣县| 梓潼县|