亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > HTML > 正文

HTML5中的websocket實現直播功能

2024-08-26 00:20:42
字體:
來源:轉載
供稿:網友

做視頻直播這一塊,前期研究了很多方案,包括websocket,因為各種原因最后沒有采取這個方案,但還是想記錄一下學習的心得。

WebSocket是HTML5開始提供的一種在單個 TCP 連接上進行全雙工通訊的協議。

在WebSocket API中,瀏覽器和服務器只需要做一個握手的動作,然后,瀏覽器和服務器之間就形成了一條快速通道。兩者之間就直接可以數據互相傳送。

瀏覽器通過 JavaScript 向服務器發出建立 WebSocket 連接的請求,連接建立以后,客戶端和服務器端就可以通過 TCP 連接直接交換數據。

當你獲取 Web Socket 連接后,你可以通過send()方法來向服務器發送數據,并通過onmessage事件來接收服務器返回的數據。

做的過程中,主要的思維是:在錄像頁面利用setTimeout()每隔固定的時間通過canvas將視頻轉化為一幀一幀的圖像,然后用websocket的socket.send()將圖片數據發送給服務器。在直播頁面就是先創建一個<img>的結構,通過websocket的socket.onmessage()獲取到圖像數據,并展示<img>標簽上,形成直播。

附上代碼

錄像頁面HTML結構

<video autoplay id="sourcevid" style="width:1600;height:900px"></video>      <canvas id="output" style="display:none"></canvas>  

錄像頁面js

<script type="text/javascript" charset="utf-8">          //創建一個+實例          var socket = new WebSocket("ws://"+document.domain+":8080");          var back = document.getElementById('output');          //返回一個用于在畫布上繪圖的環境。          var backcontext = back.getContext('2d');          var video = document.getElementsByTagName('video')[0];          var success = function(stream){              //獲取視屏流,轉換為url              video.src = window.URL.createObjectURL(stream);          }          //打開socket          socket.onopen = function(){              draw();              console.log("open success")          }          // 將視頻幀繪制到Canvas對象上,Canvas每100ms切換幀,形成肉眼視頻效果            var draw = function(){              try{                  backcontext.drawImage(video,0,0, back.width, back.height);              }catch(e){                  if (e.name == "NS_ERROR_NOT_AVAILABLE") {                      return setTimeout(draw, 100);                  } else {                      throw e;                  }              }              if(video.src){                  // Canvas的內容轉化成PNG data URI并發送到服務器,0.5為和壓縮系數                  socket.send(back.toDataURL("image/jpeg", 0.5));              }              setTimeout(draw, 100);          }          //調用設備的攝像頭,并將資源放入video標簽          navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia ||          navigator.mozGetUserMedia || navigator.msGetUserMedia;          navigator.getUserMedia({video:true, audio:false}, success, console.log);      </script>  

直播頁面HTML結構:

<img id="receiver" style="width:1600px;height:900px"/>  

直播頁面JS

<script type="text/javascript" charset="utf-8">          //創建一個socket實例          var receiver_socket = new WebSocket("ws://"+document.domain+":8008");          alert("ws://"+document.domain+":8008")          var image = document.getElementById('receiver');           // 監聽消息          receiver_socket.onmessage = function(data)          {              image.src=data.data;          }      </script>  

總結

以上所述是小編給大家介紹的HTML5中的websocket實現直播功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VeVb武林網網站的支持!


注:相關教程知識閱讀請移步到HTML教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩美女在线观看| 国产+成+人+亚洲欧洲| 国产精品专区h在线观看| 亚洲国产中文字幕久久网| 亚洲欧洲一区二区三区久久| 亚洲香蕉av在线一区二区三区| 亚洲一区中文字幕在线观看| 精品久久久一区二区| 亚洲一区中文字幕| 国产精品h片在线播放| 日产精品99久久久久久| 精品国产美女在线| 欧美性videos高清精品| 日韩国产欧美精品一区二区三区| 欧美国产在线电影| 久久国产精彩视频| 欧美激情精品久久久久久变态| 亚洲激情在线观看视频免费| 色偷偷噜噜噜亚洲男人的天堂| 久久中文字幕在线视频| 中文字幕亚洲综合久久筱田步美| 中文字幕免费国产精品| 亚洲精品一区中文| 97碰碰碰免费色视频| 国产福利精品视频| 亚洲精品国产综合区久久久久久久| 国产精品激情av电影在线观看| 日本一本a高清免费不卡| 中文字幕免费精品一区| 亚洲精品永久免费精品| 欧美第一页在线| 国产精品视频久久| 久久久久久久一区二区| 欧美成人黄色小视频| 欧美精品一区二区免费| 亚洲一区二区自拍| 国产精品影片在线观看| 精品久久久久久久久久| 精品在线观看国产| www.99久久热国产日韩欧美.com| 国产99久久精品一区二区永久免费| 国产成人亚洲综合青青| 日韩电影在线观看免费| 国产区精品视频| 日韩欧美成人精品| 55夜色66夜色国产精品视频| 国产欧美va欧美va香蕉在| 亚洲精品99999| 国产999精品久久久影片官网| 中文字幕日韩精品在线观看| 亚洲色图日韩av| 亚洲加勒比久久88色综合| 日韩在线视频国产| 精品国产乱码久久久久酒店| 亚洲深夜福利视频| 国产免费一区二区三区在线能观看| 色噜噜狠狠狠综合曰曰曰| 久久这里有精品视频| 亚洲欧美变态国产另类| 97色在线观看| 国产亚洲欧美一区| 免费av一区二区| 欧美成人免费在线视频| 69av成年福利视频| 欧美激情久久久久久| 7m精品福利视频导航| 欧美激情在线狂野欧美精品| 欧美日韩一区二区在线| 日韩免费在线视频| 国产欧美最新羞羞视频在线观看| 欧美色xxxx| 亚洲欧洲午夜一线一品| 精品国产欧美成人夜夜嗨| 欧美大片在线看免费观看| www.日韩不卡电影av| 福利视频第一区| 亚洲性线免费观看视频成熟| 欧美网站在线观看| 国内精品久久久久影院 日本资源| 麻豆国产va免费精品高清在线| 久久久精品在线| 久久久精品久久| 精品久久国产精品| 91日韩在线视频| 最近2019好看的中文字幕免费| 国产精品高潮呻吟久久av黑人| 日韩影视在线观看| 欧美精品亚州精品| 国产成人avxxxxx在线看| 亚洲视频在线免费观看| 成人免费激情视频| 日本午夜精品理论片a级appf发布| 久色乳综合思思在线视频| 久久久精品国产| 欧美亚洲一级片| 久久久精品在线| 国产日韩在线视频| 日本一区二区在线播放| 日韩在线视频中文字幕| 福利一区福利二区微拍刺激| 成人国产精品日本在线| 亚洲精品国产精品乱码不99按摩| 亚洲香蕉成人av网站在线观看| 岛国av一区二区在线在线观看| 日日噜噜噜夜夜爽亚洲精品| 欧美色道久久88综合亚洲精品| 久久99国产综合精品女同| 国产精品情侣自拍| 国产亚洲一级高清| 日韩中文字幕视频在线| 久久久精品久久久久| 国产精品久久久久免费a∨大胸| 4444欧美成人kkkk| 日韩在线www| 国产一区二区精品丝袜| 久久久久久久久国产| 91国产精品电影| 国产精品激情av在线播放| 久久久精品电影| 中文字幕在线观看日韩| 欧美一级片免费在线| 亚洲国产精品网站| 亚洲成人av资源网| 深夜福利亚洲导航| 91国偷自产一区二区三区的观看方式| 国产欧美一区二区三区视频| 91国内在线视频| 中文字幕av一区| 欧美电影在线观看网站| 欧美国产亚洲视频| 色小说视频一区| 国产成人拍精品视频午夜网站| 久久99精品久久久久久青青91| 在线观看中文字幕亚洲| 伊人久久久久久久久久久久久| 国产精品h片在线播放| 26uuu国产精品视频| 亚洲精品98久久久久久中文字幕| 91av福利视频| 精品亚洲va在线va天堂资源站| 亚洲一区二区三区在线免费观看| 国产欧美一区二区| 亚洲精品日韩丝袜精品| 亚洲精品一区中文字幕乱码| 亚洲精品资源美女情侣酒店| 欧美日韩国产成人| 日韩精品免费综合视频在线播放| 日韩美女av在线| 午夜精品福利在线观看| 亚洲欧美www| 久久天天躁日日躁| 日韩精品视频在线播放| 少妇高潮久久77777| 久久久久国色av免费观看性色| 日韩高清免费在线| 精品一区二区亚洲| 精品一区二区三区四区| 午夜精品免费视频| 91手机视频在线观看| 亚洲男人的天堂在线播放| 在线播放日韩精品| 国产精品爽黄69天堂a| 国自在线精品视频| 亚洲成人av资源网|