1、TWebLive 簡介git
TWebLive [1] 集成了騰訊雲實時音視頻 TRTC [2]、騰訊雲即時通訊 TIM [3]、騰訊雲超級播放器 TCPlayer [4],覆蓋了 Web 直播互動場景常見的功能(推流、開/關麥,開/關攝像頭,微信分享觀看、聊天點贊等等),並封裝了簡單易用的 API [5],接入後可快速實現 Web 端推流、拉流以及實時聊天互動功能。
github
2、TWebLive 的優點web
<div id="pusherView" style="width:100%; height:auto;"></div><script>// 一、建立 Pusher(推流)對象let pusher = TWebLive.createPusher({ userID: 'your userID' });
// 二、設置渲染界面,且從麥克風採集音頻,從攝像頭採集視頻(默認720p)pusher.setRenderView({ elementID: 'pusherView', audio: true, video: true}).then(() => { // 三、填入 sdkappid roomid 等信息,推流 // url 必須以 `room://` 開頭 let url = `room://sdkappid=${SDKAppID}&roomid=${roomID}&userid=${userID}&usersig=${userSig}&livedomainname=${liveDomainName}&streamid=${streamID}`; pusher.startPush(url).then(() => { console.log('pusher | startPush | ok'); });}).catch(error => { console.error('pusher | setRenderView | failed', error);});</script>
2. 拉流
當須要拉流播放時,建立 Player(播放器)對象,最簡單的拉流僅需3步:
npm
<div id="playerView" style="width:100%; height:auto;"></div><script>// 一、建立 Player(播放器)對象let player = TWebLive.createPlayer();
// 二、設置渲染界面player.setRenderView({ elementID: 'playerView' });
// 三、填入 flv hls 地址等信息,拉 CDN 流播放,此時 url 必須以 `https://` 開頭// 或 填入 sdkappid roomid 等信息,拉 WebRTC 低延時流播放,此時 url 必須以 `room://` 開頭let url = 'https://' + 'flv=https://200002949.vod.myqcloud.com/200002949_b6ffc.f0.flv' + '&' // 請替換成實際可用的播放地址 + 'hls=https://200002949.vod.myqcloud.com/200002949_b6ffc.f0.m3u8' // 請替換成實際可用的播放地址
// let url = `room://sdkappid=${SDKAppID}&roomid=${roomID}&userid=${userID}&usersig=${userSig}`;player.startPlay(url).then(() => { console.log('player | startPlay | ok');}).catch((error) => { console.error('player | startPlay | failed', error);});</script>
3. 直播互動
當主播和觀衆須要聊天互動時,建立 IM(即時通訊)對象,最簡單的消息收發僅需3步:
小程序
// 一、建立 IM(即時通訊)對象並監聽事件let im = TWebLive.createIM({ SDKAppID: 0 // 接入時須要將0替換爲您的雲通訊應用的 SDKAppID});// 監聽 IM_READY IM_TEXT_MESSAGE_RECEIVED 等事件let onIMReady = function(event) { im.sendTextMessage({ roomID: 'your roomID', text: 'hello from TWebLive' });};let onTextMessageReceived = function(event) { event.data.forEach(function(message) { console.log((message.from || message.nick) + ' : ', message.payload.text); });};// 接入側監聽此事件,而後可調用 SDK 發送消息等im.on(TWebLive.EVENT.IM_READY, onIMReady);// 收到文本消息,上屏im.on(TWebLive.EVENT.IM_TEXT_MESSAGE_RECEIVED, onTextMessageReceived);
// 二、登陸im.login({userID: 'your userID', userSig: 'your userSig'}).then((imResponse) => { console.log(imResponse.data); // 登陸成功 if (imResponse.data.repeatLogin === true) { // 標識帳號已登陸,本次登陸操做爲重複登陸 console.log(imResponse.data.errorInfo); }}).catch((imError) => { console.warn('im | login | failed', imError); // 登陸失敗的相關信息});
// 三、加入直播間im.enterRoom('your roomID').then((imResponse) => { switch (imResponse.data.status) { case TWebLive.TYPES.ENTER_ROOM_SUCCESS: // 加入直播間成功 break; case TWebLive.TYPES.ALREADY_IN_ROOM: // 已經在直播間內 break; default: break; }}).catch((imError) => { console.warn('im | enterRoom | failed', imError); // 加入直播間失敗的相關信息});</script>
3、接入使用瀏覽器
npm i tweblive --save
4、平臺支持安全
5、注意事項服務器
6、結語微信
同時,提供有詳細的接入方案和在線 Demo,歡迎你們前來體驗。目前 TWebLive 在主流的桌面瀏覽器上也有較好的支持,在移動端支持小程序的解決方案。網絡