天天看點

直播APP源碼,視訊直播技術篇 。

直播行業現在是越發的火熱,人們對于視訊直播的熱情也是久盛不衰,雲豹直播的技術人員在這裡就教大家編寫一個小小的視訊直播片段。

Windows Media Player 系列(不同面闆樣式)

綜合型:

id=MediaPlayer type=application/x-oleobject width=210 height=340 standby="Loading Microsoft Windows Media Player components..." VIEWASTEXT align=MIDDLE>

簡易型:

http://www.

*.com/mediadate/lxlhbcn.asf style="HEIGHT: 45px; WIDTH: 190px" type=audio/mpeg AUTOSTART="1" loop="0">

标簽型:

引用内容

媒體播放器的外觀界面

在網頁中,你可以通過相關屬性來控制媒體播放器的哪些部分出現,哪些部分不出現。

媒體播放器包括如下元素:

Video Display Panel:視訊顯示面闆;

Video Border:視訊邊框;

Closed Captioning Display Panel;字幕顯示面闆;

Track Bar;搜尋欄;

Control Bar with Audio and Position Controls:帶有聲音和位置控制的控制欄;

Go To Bar:轉到欄;

Display Panel:顯示面闆;

Status Bar:狀态欄;

下面的屬性用來決定顯示哪一個元素:

ShowControls 屬性:是否顯示控制欄(包括播放控件及可選的聲音和位置控件);

ShowAudioControls 屬性:是否在控制欄顯示聲音控件(靜音按鈕和音量滑塊);

ShowPositionControls 屬性:是否在控制欄顯示位置控件(包括向後跳進、快退、快進、向前跳進、預覽播放清單中的每個剪輯);

ShowTracker 屬性:是否顯示搜尋欄;

ShowDisplay 屬性:是否顯示顯示面闆(用來提供節目與剪輯的資訊);

ShowCaptioning 屬性:是否顯示字幕顯示面闆;

ShowGotoBar 屬性:是否顯示轉到欄;

ShowStatusBar 屬性:是否顯示狀态欄;

播放清單

媒體播放器提供下面的方法來通路播放清單中的剪輯:

Next 方法,跳到節目(播放清單)中的下一個剪輯;

Previous 方法,跳回到節目中的上一個剪輯;

媒體播放器的一個特性是能夠預覽節目中的每一個剪輯,使用如下屬性:

PreviewMode 屬性,決定媒體播放器目前是否處于預覽模式;

CanPreview 屬性,決定媒體播放器能否處于預覽模式;

在windows 媒體元檔案中,可以為每一個剪輯指定預覽時間——PREVIEWDURATION,如果沒有指定,那麼預設的預覽時間是10秒鐘。

你也可以用Windows 媒體元檔案來添加 watermarks 與 banners,元檔案也支援插入廣告時的無間隙流切換。

節目資訊

使用 GetMediaInfoString 方法可以傳回相關剪輯或節目的如下資訊:

檔案名:File name

标題:Title

描述:Description

作者:Author

版權:Copyright

級别:Rating

URLs:logo icon、watermark、banner的位址

剪輯資訊可以放在媒體檔案中,也可以放在Windows 媒體元檔案中,或者兩者都放。如果在元檔案中指定了剪輯資訊,那麼用 GetMediaInfoString 方法傳回的就是元檔案中的資訊,而不會傳回剪輯中包含的資訊。

在元檔案中,附加資訊可以放置在每一個剪輯或節目的 PARAM标簽中。你可以為每個剪輯添加任意多個 PARAM 标簽,用來存儲自定義的資訊或連結到相關站點。在 PARAM 标簽中的資訊可以通過 GetMediaParameter 方法來通路。

下面的屬性傳回有關大小和時間的資訊:

ImageSourceHeight、ImageSourceWidth:傳回圖像視窗的顯示尺寸;

Duration 屬性,傳回剪輯的長度(秒), 要檢測這個屬性是否包含有效的數值,請檢查IsDurationValid 屬性。(對于廣播的視訊,其長度是不可預知的)。

字幕

你可以用 .smi 檔案來為你的節目添加字幕。媒體播放器支援下面的屬性來處理字幕:

SAMIFileName 屬性,指定 .smi 檔案的名字;

SAMILang 屬性,指定字幕的語言(如果沒有指定則使用第一種語言);

SAMIStyle 屬性,指定字幕的文字大小和樣式;

ShowCaptioning 屬性,決定是否顯示字幕顯示面闆;

腳本指令

伴随音頻、視訊流,你可以在流媒體檔案中加入腳本指令。腳本指令是多媒體流中與特定時間同步的多對Unicode串。第一個串辨別待發指令的類型,第二個串指定要執行的指令。

當流播放到與腳本相關的時間時,控件會向網頁發送一個 ScriptCommand事件,然後由事件處理程序來響應這個事件。腳本指令字元串會作為腳本指令事件的參數傳遞給事件處理器。

媒體播放器會自動處理下面類型的内嵌腳本指令:

1) URL型指令:當媒體播放器控件收到一個URL型的指令時,指定的URL會被裝載到使用者的預設浏覽器。如果媒體播放器嵌在一個分幀的HTML檔案中,URL頁可以裝載到由腳本指令指定的幀内。如果腳本指令沒有指定一個幀,将由 DefaultFrame 屬性決定将 URL 頁裝入哪一幀。

你可以通過設定 InvokeURLs 屬性來決定是否自動處理 URL 型的腳本指令。如果這個屬性的值為 false ,媒體播放器控件将忽視 URL型指令。但是腳本指令事件仍會觸發,這就允許你有選擇地處理 URL 型指令。

URL 型指令指定的是 URL 的相對位址。基位址是由 BaseURL屬性指定的。媒體播放器控件傳送的腳本指令事件的指令參數是連結好的位址。

2) FILENAME型指令:當媒體播放器控件收到一個FILENAME型的指令時,它将 FileName屬性設定為腳本指令提供的檔案,之後媒體播放器會打開這個檔案開始播放。 媒體播放器控件總是自動處理 FILENAME 型指令,不象 URL 型指令,它們不能被禁止。

3) TEXT型指令:當媒體播放器控件收到一個 TEXT型的指令時,它會将指令的内容顯示在控件的字幕視窗。内容可以是純文字的,也可以是 HTML。

4) EVENT型指令:當媒體播放器控件收到一個 EVENT型的指令時,它會在媒體元檔案中搜尋 EVENT 元素的 NAME 屬性。如果 NAME 屬性與腳本指令中的第二個字元串比對,媒體播放器控件就執行包含在 EVENT 元素中的條目。

5) OPENEVENT型指令:當媒體播放器控件收到一個 OPENEVENT型的指令時,它會在媒體元檔案中檢查 EVENT 元素,并打開比對的标題,但不播放,直到收到來自 EVENT型指令的同名真實事件。

簡單的視訊直播就是如此浩大的編寫過程,可想而知,一整套直播APP源碼需要耗費多少的時間,各位有意向進入直播市場的小夥伴們還是選擇雲豹直播,直接搭建起屬于自己的直播平台吧!

繼續閱讀