文章目录
一直没接触过流媒体,这次项目当中需要涉及到接收来自服务器的流媒体监控视频,并实时播放、切换、关闭,于是查找了一下资料。发现原以为是难点的地方,全部都很简单。
首先,要嵌入流媒体很简单,主要有以下2种方式:
1.** 标签型(严重推荐)**:
1 2
| <embed width=240 height=140 transparentatstart=true animationatstart=false autostart=true autosize=false volume=100 displaysize=0 showdisplay=true showstatusbar=true showcontrols=true showaudiocontrols=true showtracker=true showpositioncontrols=true balance=true src="[流媒体地址]"> </embed>
|
当然,还有简化版的:
1
| <embed src="[流媒体地址]" style="height: 140px; width: 240px" type=audio/mpeg AUTOSTART="1" loop="0">
|
2. 综合型:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
| <object classid=clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95 codebase="http://activex.microsoft.com/activex/controls/mplayer /en/nsmp2inf.cab#Version=6,1,5,217" id=MediaPlayer type=application/x-oleobject width=210 height=340 standby="Loading Microsoft Windows Media Player components..." VIEWASTEXT align=MIDDLE> <param name=AudioStream value=-1> <param name=AutoSize value=0> <param name=AutoStart value=1> <param name=AnimationAtStart value=0> <param name=AllowScan value=-1> <param name=AllowChangeDisplaySize value=0> <param name=AutoRewind value=0> <param name=Balance value=0> <param name=BaseURL value=""> <param name=BufferingTime value=5> <param name=CaptioningID value=""> <param name=ClickToPlay value=0> <param name=CursorType value=32512> <param name=CurrentPosition value=-1> <param name=CurrentMarker value=0> <param name=DefaultFrame value=1> <param name=DisplayBackColor value=0> <param name=DisplayForeColor value=16777215> <param name=DisplayMode value=0> <param name=DisplaySize value=0> <param name=Enabled value=-1> <param name=EnableContextMenu value=-1> <param name=EnablePositionControls value=0> <param name=EnableFullScreenControls value=0> <param name=EnableTracker value=1> <param name=Filename value="[流媒体地址]"> <param name=InvokeURLs value=-1> <param name=Language value=-1> <param name=Mute value=0> <param name=PlayCount value=1> <param name=PreviewMode value=0> <param name=Rate value=1> <param name=SAMILang value=""> <param name=SAMIStyle value=""> <param name=SAMIFileName value=""> <param name=SelectionStart value=0> <param name=SelectionEnd value=true> <param name=SendOpenStateChangeEvents value=-1> <param name=SendWarningEvents value=-1> <param name=SendErrorEvents value=-1> <param name=SendKeyboardEvents value=0> <param name=SendMouseClickEvents value=0> <param name=SendMouseMoveEvents value=0> <param name=SendPlayStateChangeEvents value=-1> <param name=ShowCaptioning value=0> <param name=ShowControls value=1> <param name=ShowAudioControls value=1> <param name=ShowDisplay value=1> <param name=ShowGotoBar value=1> <param name=ShowPositionControls value=1> <param name=ShowStatusBar value=1> <param name=ShowTracker value=1> <param name=TransparentAtStart value=0> <param name=VideoBorderWidth value=0> <param name=VideoBorderColor value=0> <param name=VideoBorder3D value=0> <param name=Volume value=-1070> <param name=WindowlessVideo value=1> </object>
|
其次,非常重要的一个环节,就是停止播放和切换流媒体地址。也相当简单粗暴。
尝试过直接用js操作替换src内容,发现并不会发生变化。于是采用了移除原有的embed标签,新建一个包含新地址的embed在原来的div中,完美解决。
唯一不放心的是,不知道被移除标签中嵌入的流媒体在后台会不会继续。反正有人告诉我不会……
最后,是切换一页显示多少个视频,也就是布局问题。这个乍看好像有点麻烦,其实也再简单不过了。
先定义好最多有几个,并且给每个流媒体的div标签id赋值。然后按切换需要,隐藏div,并重新给div赋值进行布局(不要删除div,否则还原回多个摄像头画面时,原有的视频会消失,同时会影响布局时的操控,更复杂)。
没图说个XX,好吧,上代码……
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>流媒体切换</title> <script src="jquery-1.7.2.min.js"></script> <style> button{width:200px;height:50px;margin-top:30px;} </style> <script> $(document).ready(function(){ var embedStart = "<embed width=240 height=140 transparentatstart=true animationatstart=false autostart=true autosize=false volume=100 displaysize=0 showdisplay=true showstatusbar=true showcontrols=true showaudiocontrols=true showtracker=true showpositioncontrols=true balance=true src='"; var embedEnd = "'></embed>"; var mms1 = "rtsp://live.hugd.com/whyl.wmv"; var mms2 = "rtsp://live.hugd.com/xwzh.wmv";
$('#btn1').click(function() { $("#mms3 embed").remove(); $("#mms3").append(embedStart+mms1+embedEnd); }); $('#btn2').click(function() { $("#mms1 embed").remove(); $("#mms1").append(embedStart+mms2+embedEnd); }); }) </script> </head>
<body> <div id="mms1"> <embed width=240 height=140 transparentatstart=true animationatstart=false autostart=true autosize=false volume=100 displaysize=0 showdisplay=true showstatusbar=true showcontrols=true showaudiocontrols=true showtracker=true showpositioncontrols=true balance=true src="rtsp://live.hugd.com/whyl.wmv"> </embed> </div> <div id="mms2"> <embed width=240 height=140 transparentatstart=true animationatstart=false autostart=true autosize=false volume=100 displaysize=0 showdisplay=true showstatusbar=true showcontrols=true showaudiocontrols=true showtracker=true showpositioncontrols=true balance=true src="rtsp://live.hugd.com/xwzh.wmv"> </embed> </div> <div id="mms3"> <embed width=240 height=140 transparentatstart=true animationatstart=false autostart=true autosize=false volume=100 displaysize=0 showdisplay=true showstatusbar=true showcontrols=true showaudiocontrols=true showtracker=true showpositioncontrols=true balance=true src="mms://211.106.66.141/moretv/drama/2tv/dra_misa/bgm/01.asf"> </embed> </div> <div id="mms4"> <embed width=240 height=140 transparentatstart=true animationatstart=false autostart=true autosize=false volume=100 displaysize=0 showdisplay=true showstatusbar=true showcontrols=true showaudiocontrols=true showtracker=true showpositioncontrols=true balance=true src="mms://211.106.66.141/moretv/drama/2tv/dra_misa/bgm/01.asf"> </embed> </div> <div id="mms5"> <embed width=240 height=140 transparentatstart=true animationatstart=false autostart=true autosize=false volume=100 displaysize=0 showdisplay=true showstatusbar=true showcontrols=true showaudiocontrols=true showtracker=true showpositioncontrols=true balance=true src="mms://211.106.66.141/moretv/drama/2tv/dra_misa/bgm/01.asf"> </embed> </div>
<button id="btn1">点我填充第3个</button> <button id="btn2">点我替换第1个</button> </body> </html>
|
♦ 本文固定连接:https://www.gsgundam.com/archive/2013-10-20-web-media-stream-camera/
♦ 转载请注明:GSGundam 2013年10月20日发布于 GSGUNDAM砍柴工
♦ 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。
♦ 原创不易,如果页面上有适合你的广告,不妨点击一下看看,支持作者。(广告来源:Google Adsense)
♦ 本文总阅读量次