国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

采用HTML5+SignalR2.0(.Net)實現原生Web視頻的代碼分享

來源:懂視網 責編:小采 時間:2020-11-27 15:10:40
文檔

采用HTML5+SignalR2.0(.Net)實現原生Web視頻的代碼分享

采用HTML5+SignalR2.0(.Net)實現原生Web視頻的代碼分享:目錄對SignalR不了解的人可以直接移步下面的目錄SignalR系列目錄前言 - -,我又來了,今天廢話不多說,我們直接來實現Web視頻聊天.采用的技術如下:HTML5 WebRTCSignalR2.2.0localResizeIMG3(前端圖像壓縮技術,開源)效果如圖(馬賽克你懂的,Demo效果比較簡
推薦度:
導讀采用HTML5+SignalR2.0(.Net)實現原生Web視頻的代碼分享:目錄對SignalR不了解的人可以直接移步下面的目錄SignalR系列目錄前言 - -,我又來了,今天廢話不多說,我們直接來實現Web視頻聊天.采用的技術如下:HTML5 WebRTCSignalR2.2.0localResizeIMG3(前端圖像壓縮技術,開源)效果如圖(馬賽克你懂的,Demo效果比較簡

目錄

對SignalR不了解的人可以直接移步下面的目錄

SignalR系列目錄

前言

- -,我又來了,今天廢話不多說,我們直接來實現Web視頻聊天.

采用的技術如下:

HTML5 WebRTC

SignalR2.2.0

localResizeIMG3(前端圖像壓縮技術,開源)

效果如圖(馬賽克你懂的,Demo效果比較簡陋):

正文

首先我們來看看前端的實現,主要是通過HTML5的WebRTC技術獲取視頻流 轉換成圖片 然后采用壓縮后定時發送的技術給到SignalR服務端.

我們先來看看獲取視頻流的JS,文字我就不多解釋了,大家直接看注釋即可

 
 canvas = document.getElementById("canvas"), 
 context = canvas.getContext("2d"), 
 video = document.getElementById("video"),
 videoObj = { "video": }, 
 errBack = "Video capture error: "
 
 (navigator.getUserMedia) { 
 navigator.getUserMedia(videoObj, = (navigator.webkitGetUserMedia) { 
 navigator.webkitGetUserMedia(videoObj, = data = (navigator.mozGetUserMedia) { 
 navigator.mozGetUserMedia(videoObj, =
 window.setInterval(0, 0, 320, 240 type = 'jpg' imgData =0.1, 
 done: data =
 500)

這樣,我們就獲取到了相關的數據(PS:獲取到的圖像大小約為4800個長度的字符串,壓縮率0.1壓縮后為2300個長度,自行根據帶寬修改壓縮率)

下面我們看看SignalR的實現代碼(關鍵方法已經標黃):

 [HubName("getMessage")] public class TestHub : Hub
 { public void SendMessage(string aaaa)
 {
 Clients.All.broadcastMessage(aaaa);
 } public void SendImage(string imagedata)
 { //獲取圖像數據,轉發給其他客戶端
 Clients.Others.showimage(new {id=Context.ConnectionId,data=imagedata});
 } public override System.Threading.Tasks.Task OnConnected()
 {
 Clients.Others.addKuang(Context.ConnectionId); 
 return base.OnConnected();
 } public override System.Threading.Tasks.Task OnDisconnected(bool stopCalled)
 {
 Clients.All.romeKuang(Context.ConnectionId); 
 return base.OnDisconnected(stopCalled);
 }
 }

我們來看看前端的SignalR的實現代碼:

 // 這里是注冊集線器調用的方法,和1.0不同的是需要chat.client后注冊,1.0則不需要
 var chat = $.connection.getMessage;
 chat.client.broadcastMessage = function (name) { 
 // HTML編碼的顯示名稱和消息。
 var encodedMsg = $('<p />').text(name).html(); 
 // 將消息添加到該頁。
 $('#messsagebox').append('<li>' + encodedMsg + '</li>');
 }; 
 //獲取圖片數據,并實時顯示
 chat.client.showimage = function (data) { 
 if ($("#" + data.id).length<=0) { 
 var html = '<p style="float: left; border: double" id="p' + data.id + '">\
 <img id="'+ data.id + '" width="320" height="240">\
 <br />\
 <span>用戶'+ data.id + '</span>\
 </p>'
 $("#contextp").append(html)
 }
 $("#" + data.id).attr("src", data.data);
 } // 獲取用戶名稱。
 $('#username').html(prompt('請輸入您的名稱:', '')); 
 // 設置初始焦點到消息輸入框。
 $('#message').focus(); 
 // 啟動連接,這里和1.0也有區別
 $.connection.hub.start().done(function () {
 $('#send').click(function () { 
 var message = $('#username').html() + ":" + $('#message').val() 
 // 這里是調用服務器的方法,同樣,首字母小寫 
 chat.server.sendMessage(message); // 清空輸入框的文字并給焦點.
 $('#message').val('').focus();
 });
 });

這樣,我們很簡單的就完成了HTML5+SignalR2.0的視頻聊天程序.

寫在最后

由于這是一個簡單的Demo,所以并沒有考慮到應用于生產環境的問題,文章中實現的是視頻群聊,所以對帶寬要求很高(畢竟數據全部需要從服務器交換出去,基本測試為4人需要2M帶寬,在壓縮率0.1的情況下),如果你要應用于生產環境,還是需要進一步的優化,比如通信的間隔,最好是單人互相通信之類的各種情況...,就說到這里,Over..

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

采用HTML5+SignalR2.0(.Net)實現原生Web視頻的代碼分享

采用HTML5+SignalR2.0(.Net)實現原生Web視頻的代碼分享:目錄對SignalR不了解的人可以直接移步下面的目錄SignalR系列目錄前言 - -,我又來了,今天廢話不多說,我們直接來實現Web視頻聊天.采用的技術如下:HTML5 WebRTCSignalR2.2.0localResizeIMG3(前端圖像壓縮技術,開源)效果如圖(馬賽克你懂的,Demo效果比較簡
推薦度:
標簽: 視頻 實現 html5
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 欧美国产亚洲一区二区三区 | 亚欧精品在线观看 | 国产精品久久久久久久久鸭 | 成人特黄午夜性a一级毛片 成人国产一区二区三区精品 | 欧美日韩视频一区三区二区 | 日韩视频在线播放 | 亚洲一区二区三区成人 | 国产区精品福利在线社区 | 欧美 亚洲 一区 | 国产日韩欧美在线观看不卡 | 亚洲欧美中文字幕 | 大陆国产精品视频 | 国产在线精品观看一区 | 九九国产精品视频 | 国产成人一区二区三区小说 | 五十路中文字幕 | 国内偷自第一二三区 | 欧美日本在线观看 | 日韩短视频| 成人亚洲欧美日韩在线 | 国产精品久久久久久久午夜片 | 日韩在线不卡 | 欧美亚洲综合另类在线观看 | 日韩经典第一页 | 亚洲一级二级三级 | 91网红福利精品区一区二 | 免费在线观看一区 | 国内精品久久久久影院不卡 | 欧美激情一区二区 | 国产视频a| 亚洲国产成人精彩精品 | 国产成人精品三级在线 | 99热伊人| 永久免费毛片 | 国产一区三区二区中文在线 | 国产欧美日韩一区二区三区 | 91精品国产色综合久久不卡蜜 | 精品1区2区3区 | 91精品91久久久久久 | 息子五十路 | 亚洲精品国产精品精 |