先看代碼吧:想表達的在註釋中:
Java代碼 複製代碼
程序代碼
1. <?xml version="1.0" encoding="utf-8"?>
2. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="initApp();">
3. <mx:Script>
4. <![CDATA[
5. import mx.messaging.errors.NoChannelAvailableError;
6. private var nc:NetConnection;
7. private var ns:NetStream;
8. private var rtmpNow:String;
9. private var msg:Boolean;
10. private var metaSniffer:Object;
11. private var dur:Number;
12. private var cam:Camera;
13. private var mic:Microphone;
14. private var vid1:Video;
15.
16. private function initApp():void{
17. //初始化一個網絡連接
18. nc=new NetConnection();
19. //爲這個連接添加事件,這個事件有返回連接狀態
20. nc.addEventListener(NetStatusEvent.NET_STATUS,checkConnect);
21. //這是連接的地址其實就是在你FMS的安裝目錄裏,Applications下新建一個vid2的文件夾,這個文件夾可以看成是你的工程名了
22. //至於後面的recordings是你錄製視頻時存放視頻的文件夾
23. rtmpNow="rtmp://localhost/vid2/recordings";
24. //開始連接
25. nc.connect(rtmpNow);
26. addMedia();
27. }
28.
29. private function checkConnect(event:NetStatusEvent):void{
30. //根據連接返回的狀態信息判斷是滯連接成功
31. msg=(event.info.code=="NetConnection.Connect.Success");
32. msgError.text=event.info.code;
33. if(msg){
34. //如果成功,就利用些連接建立一個流,爲以後的錄製傳輸數據
35. ns=new NetStream(nc);
36. msgError.text="establish netStream";
37. }
38. }
39.
40. private function startRecord(e:Event):void{
41. if(ns){
42.
43. msgError.text="start record";
44. //開始錄製時要加載micphone和攝像頭
45. ns.attachAudio(mic);
46. ns.attachCamera(cam);
47. //這裏是關鍵,從這裏開始,就開始錄製了,input.text是錄製的視頻文件的名稱
48. ns.publish(input.text,"record");
49. }
50. }
51.
52. private function stop(event:Event):void{
53. //和JAVA裏類似,流類的東西一定要記得關閉
54. ns.play(false);
55. ns.close();
56. msgError.text="stop";
57. }
58.
59. private function addMedia ():void
60. {
61. //獲取系統的攝像頭
62. cam=Camera.getCamera();
63. //設定寬,高,以及幀
64. cam.setMode (240,180,24);
65. //設定畫面質量
66. cam.setQuality (0,90);
67. //獲取系統的microphone
68. mic=Microphone.getMicrophone();
69. //讓videoDisplay加載攝像頭
70. vv.attachCamera(cam);
71. msgError.text="initnize";
72. }
73.
74.
75. ]]>
76. </mx:Script>
77.
78. <mx:VBox id="myVb">
79. <mx:VideoDisplay id="vv" width="400" height="300"/>
80. <mx:Button label="record" id="btn" click="startRecord(event);"/>
81. <mx:Button label="play" id="stopbtn" click="stop(event);"/>
82. <mx:TextInput id="input"/>
83. <mx:TextArea id="msgError" backgroundColor="red"/>
84. </mx:VBox>
85. </mx:Application>