3 s' ?2 K2 w) H: y6 K# f7 t6 R2 v直播行业现在是越发的火热,人们对于视频直播的热情也是久盛不衰,云豹直播的技术人员在这里就教大家编写一个小小的视频直播片段。 Windows Media Player 系列(不同面板样式) 引用内容 媒体播放器的外观界面 在网页中,你可以通过相关属性来**体播放器的哪些部分出现,哪些部分不出现。
4 \2 t+ l* \9 C. i) `. z+ d媒体播放器包括如下元素:
- k, w. \; ~% W q% D$ b/ E. oVideo Display Panel:视频显示面板;: A2 u4 q$ |# ^; G& b: W
Video Border:视频边框;
$ N7 S" Q2 Z' j7 m- lClosed Captioning Display Panel;字幕显示面板;
# |/ S+ A! L3 \' Z6 OTrack Bar;搜索栏;
$ T" n; M6 p8 B# F4 SControl Bar with Audio and Position Controls:带有声音和位置控制的控制栏;8 j V' n4 R6 P0 Q5 C4 U! {
Go To Bar:转到栏;
' B% F& a4 x: a6 U5 d6 H2 JDisplay Panel:显示面板;7 \5 F- h) D4 b4 j7 K
Status Bar:状态栏;
7 b1 {4 f- X) ?8 G: p$ g下面的属性用来决定显示哪一个元素:
9 S2 a2 \! \/ ^ShowControls 属性:是否显示控制栏(包括播放控件及可选的声音和位置控件);" Z6 Z8 V; X4 Z# U0 N
ShowAudioControls 属性:是否在控制栏显示声音控件(静音按钮和音量滑块);+ w% B; i7 ~! T: p7 s
ShowPositionControls 属性:是否在控制栏显示位置控件(包括向后跳进、快退、快进、向前跳进、预览播放列表中的每个剪辑);
0 a7 l9 `! O( e" A! x3 {! O& k% o9 RShowTracker 属性:是否显示搜索栏;: V0 m" P# X; l1 {
ShowDisplay 属性:是否显示显示面板(用来提供节目与剪辑的信息);! R) L2 \* m4 F
ShowCaptioning 属性:是否显示字幕显示面板;. E. }+ M; J% a U. E! u" [
ShowGotoBar 属性:是否显示转到栏;5 G' O) B% \' ~7 p( F
ShowStatusBar 属性:是否显示状态栏; 播放列表 媒体播放器提供下面的方法来访问播放列表中的剪辑:) T& t- O; p% M6 x: D2 v3 `
Next 方法,跳到节目(播放列表)中的下一个剪辑;
& G7 s e5 R5 o% I# ?# }* @' fPrevious 方法,跳回到节目中的上一个剪辑;4 _6 B) R8 \+ u; |3 A
媒体播放器的一个特性是能够预览节目中的每一个剪辑,使用如下属性:
3 |2 \' y$ g) \, I' lPreviewMode 属性,决定媒体播放器当前是否处于预览模式;
9 r2 U8 f( E2 o( ]/ HCanPreview 属性,决定媒体播放器能否处于预览模式;% J7 ?6 ]6 a( P
在windows 媒体元文件中,可以为每一个剪辑指定预览时间——PREVIEWDURATION,如果没有指定,那么默认的预览时间是10秒钟。* k3 v* l9 H3 k5 h6 J
你也可以用Windows 媒体元文件来添加 watermarks 与 banners,元文件也支持插入广告时的无间隙流切换。 节目信息 使用 GetMediaInfoString 方法可以返回相关剪辑或节目的如下信息:2 T9 D5 b$ v0 J
文件名:File name5 h& W2 |& i9 a w5 T* f
标题:Title
! H t+ c8 q4 d6 E描述:Description2 }6 e" j1 z5 m3 k6 i
作者:Author( c# L( _# T- e9 F0 T$ U2 C
版权:Copyright
5 o+ `7 t) J: @+ c2 k4 k级别:Rating
4 [6 B/ k$ L4 c0 @6 D& J) q% ^' p$ QURLs:logo icon、watermark、banner的地址9 D r; r, ]6 d8 p) z7 R. |
剪辑信息可以放在媒体文件中,也可以放在Windows 媒体元文件中,或者两者都放。如果在元文件中指定了剪辑信息,那么用 GetMediaInfoString 方法返回的就是元文件中的信息,而不会返回剪辑中包含的信息。- Y0 _0 q% x+ J
在元文件中,附加信息可以放置在每一个剪辑或节目的 PARAM标签中。你可以为每个剪辑添加任意多个 PARAM 标签,用来存储自定义的信息或链接到相关站点。在 PARAM 标签中的信息可以通过 GetMediaParameter 方法来访问。
! c$ q) l# ]0 k, X; k8 t9 O下面的属性返回有关大小和时间的信息:
: z( A) Y8 _" R/ C3 d* jImageSourceHeight、ImageSourceWidth:返回图像窗口的显示尺寸;3 W( _- n+ z8 S2 w- Z8 j
Duration 属性,返回剪辑的长度(秒), 要检测这个属性是否包含有效的数值,请检查IsDurationValid 属性。(对于广播的视频,其长度是不可预知的)。 字幕 你可以用 .smi 文件来为你的节目添加字幕。媒体播放器支持下面的属性来处理字幕:
, M7 v$ K+ c/ K6 RSAMIFileName 属性,指定 .smi 文件的名字;
6 W' ^+ A2 ]. O, eSAMILang 属性,指定字幕的语言(如果没有指定则使用第一种语言);
: r" I# w+ i( M" z6 {& g2 Z. WSAMIStyle 属性,指定字幕的文字大小和样式;8 e' e6 S- F9 g! [6 k- ]! A
ShowCaptioning 属性,决定是否显示字幕显示面板; 脚本命令 伴随音频、视频流,你可以在流媒体文件中加入脚本命令。脚本命令是多媒体流中与特定时间同步的多对Unicode串。第一个串标识待发命令的类型,第二个串指定要执行的命令。
) d2 [2 a* l) z0 D3 e$ P/ e) y; x当流播放到与脚本相关的时间时,控件会向网页发送一个 ScriptCommand事件,然后由事件处理进程来响应这个事件。脚本命令字符串会作为脚本命令事件的参数传递给事件处理器。
. C0 j( [/ Y: R- K' }0 ]媒体播放器会自动处理下面类型的内嵌脚本命令:" s- Q1 |5 k! n% {' s9 K
1) URL型命令:当媒体播放器控件收到一个URL型的命令时,指定的URL会被装载到用户的默认浏览器。如果媒体播放器嵌在一个分帧的HTML文件中,URL页可以装载到由脚本命令指定的帧内。如果脚本命令没有指定一个帧,将由 DefaultFrame 属性决定将 URL 页装入哪一帧。
7 b+ Z0 b$ ^" w! u r ]; N* n你可以通过设置 InvokeURLs 属性来决定是否自动处理 URL 型的脚本命令。如果这个属性的值为 false ,媒体播放器控件将忽视 URL型命令。但是脚本命令事件仍会触发,这就允许你有选择地处理 URL 型命令。3 Y- o- f$ ]- `" P. v. n
URL 型命令指定的是 URL 的相对地址。基地址是由 BaseURL属性指定的。媒体播放器控件传送的脚本命令事件的命令参数是链接好的地址。1 t% Y. Y2 _2 ]! \, O4 w4 N
2) FILENAME型命令:当媒体播放器控件收到一个FILENAME型的命令时,它将 FileName属性设置为脚本命令提供的文件,之后媒体播放器会打开这个文件开始播放。 媒体播放器控件总是自动处理 FILENAME 型命令,不象 URL 型命令,它们不能被禁止。
8 E6 ?2 U9 r& T7 x* A/ ^! R4 `$ \% v3) TEXT型命令:当媒体播放器控件收到一个 TEXT型的命令时,它会将命令的内容显示在控件的字幕窗口。内容可以是纯文本的,也可以是 HTML。
# [# p. m! j+ Y, k4) EVENT型命令:当媒体播放器控件收到一个 EVENT型的命令时,它会在媒体元文件中搜索 EVENT 元素的 NAME 属性。如果 NAME 属性与脚本命令中的第二个字符串匹配,媒体播放器控件就执行包含在 EVENT 元素中的条目。' D: z+ ^% z) [1 G9 s
5) OPENEVENT型命令:当媒体播放器控件收到一个 OPENEVENT型的命令时,它会在媒体元文件中检查 EVENT 元素,并打开匹配的标题,但不播放,直到收到来自 EVENT型命令的同名真实事件。
简单的视频直播就是如此浩大的编写过程,可想而知,一整套直播APP源码需要耗费多少的时间,各位有意向进入直播市场的小伙伴们还是选择云豹直播(官方Q Q3561248084),直接搭建起属于自己的直播平台吧!
* U% |/ y. j0 E |