使用 Eclipse 建立第一個 Red5 應用程式樣本 – 使用 Red5 線上錄製視頻

來源:互聯網
上載者:User

本文樣本原始碼
        書接上回~《如何使用 Red5 外掛程式建立 Red5 項目?》,接下來要做的當然是想看看自己在 Eclipse 開發的應用程式跑的效果。本文使用具體例子——使用 Red5 線上錄製視頻,介紹怎樣讓建立的第一個 Red5 應用成功運行。
        步驟 1:安裝 Red5
        Linux 下可以參考《如何在 Linux 伺服器上安裝 Red5?》;
        Windows 下可以去 http://wiki.red5.org/wiki/0_9_1 下載 setup-Red5-0.9.1.exe,安裝步驟基本狂點 "Next",但最後需要輸入 IP 和連接埠號碼,那個是測試頁面需要的,IP 直接輸入 "localhost",連接埠號碼可以輸入 5080。值得注意的是,Red5 安裝成功後會預設設定服務並且是自動啟動,我們需要把它的自動啟動設定為手動。因為在 Windows 下的 Red5 是用來測試用的,Eclipse 修改好項目並部署後,debug 啟動的
server 就是 Red5,如果 Red5 服務已經啟動的話會出錯。這個類似於在 Eclipse-Tomcat 下調試項目,我們不會把 Tomcat 作為 Windows 下的服務並自動啟動吧?
        步驟 2:安裝 Red5 的兩個 demo
        這個是本樣本的需要,安裝 messageRecorder 和 oflaDemo 兩個 demo。啟動 Red5 服務後,訪問 http://localhost:5080/,點擊頁面中的 Install 連結,彈出 Red5 應用安裝列表頁面,分別選擇 messageRecorder,oflaDemo,點擊右下角的 Install 按鈕進行安裝。安裝成功後在 Red5 的安裝目錄下會發現兩個新的目錄:messageRecorder 和 oflaDemo。
        這一步如果不明白的話可以看一下視頻

http://www.youtube.com/watch?v=969cmyGu1yw。

        步驟 3:在 Eclipse 中建立一個 Red5 項目
        可以參考上一篇部落格《如何使用 Red5 外掛程式建立 Red5 項目?》,本文項目名跟該文樣本項目名一樣,也是 ExampleWebPro。
        步驟 4:在 Flex Builder 3 中建立一個新項目

        項目姑且取名為 pzaixianluzhi 吧,pzaixianluzhi.mxml 內容如下:

<?xml version="1.0" encoding="utf-8"?><mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"><mx:UIComponent id="ui"></mx:UIComponent><mx:Script><![CDATA[import mx.controls.Alert;private var rtmpURL:String="rtmp://localhost/ExampleWebPro";private var conn:NetConnection=new NetConnection();private var isConnectSuccess:Boolean=false;private var netStream:NetStream;private var video:Video=new Video();private function clickConnect(e:MouseEvent):void{if(!isConnectSuccess){conn.addEventListener(NetStatusEvent.NET_STATUS,netStatus);conn.connect(rtmpURL);}}private function clickVideo(e:MouseEvent):void{video.attachCamera(Camera.getCamera());ui.addChild(video);}private function netStatus(e:NetStatusEvent):void{trace(e.info.code);if(e.info.code=="NetConnection.Connect.Success"){isConnectSuccess=true;netStream=new NetStream(conn);netStream.client=new StreamClient();netStream.attachAudio(Microphone.getMicrophone());netStream.attachCamera(Camera.getCamera());netStream.publish("nameffff","record");}}]]></mx:Script><mx:Button x="378" y="369" label="錄製" click="this.clickConnect(event)"fontSize="16"/><mx:Button x="310" y="369" label="視頻" fontSize="16"click="this.clickVideo(event)"/></mx:Application>

        pzaixianluzhi.mxml 調用到的 StreamClient.as 源碼如下:

package{public class StreamClient{public function StreamClient(){}public function onMetaData(info:Object):void{for(var n:* in info){trace(n+":"+info[n]);}}public function onPlayStatus(info:Object):void{for(var n:* in info){trace(n+":"+info[n]);}}}}

        然後點擊功能表列中的 Run 選項,選擇 Run pzaixianshipin,在彈出的瀏覽器中,點擊 "視頻" 按鈕,可以看到自己的本地視頻。——現在的筆記本基本都內建視頻頭了,如果你用的是 PC 機且沒視頻頭,那如果你想跑本文例子的話,還是去借一個視頻頭吧,哈哈。
        步驟 5:調試運行 Red5 項目
        按《如何在 Linux 伺服器上安裝 Red5?》所說 debug 啟動 Red5 Server,然後按步驟 4 點完 "視頻" 按鈕啟動本地視頻後點 "錄製" 調用 Red5 服務 ExampleWebPro 進行錄製,發現 Eclipse 控制台報錯,資訊如下:
        org red5 server net rtmp rtmphandler scope ExampleWebPro not found on localhost
        原來 Red5 的 Eclipse 外掛程式不如 Tomcat 的外掛程式似的那麼智能,自己寫好的程式識別不了。怎麼辦?
        步驟 6:手工配置步驟 3 建立好的 Red5 項目

        將 %Red5%webapps/messageRecorder/WEB-INF 下的 red5-web.properties 和 red5-web.xml 檔案複製到 ExampleWebPro 項目的 WEB-INF 下,然後在 web.xml 中添加如下內容:

<context-param><param-name>webAppRootKey</param-name><param-value>/ExampleWebPro</param-value></context-param>

        然後編輯 red5-web.properties,將 webapp.contextPath 值修改為 /ExampleWebPro。
        步驟 7:再調試 Red5 項目
        重新按照步驟 5 調試運行 Red5 項目,發現運行正常了,%Red5%/webapps/ExampleWebPro 項目下會有 streams 檔案夾產生,該檔案夾下有我們線上錄製的視頻 nameffff.flv。成功。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.