您好,登錄后才能下訂單哦!
這篇文章給大家介紹怎么在HTML5中使用websocket實現直播功能,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
錄像頁面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實現直播功能就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。