Files
sociology_app/node_modules/tcplayer.js/dist/examples/webrtc/tcplayer-src-webrtc-abr.html
2024-05-17 18:02:49 +08:00

236 lines
8.6 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no, shrink-to-fit=no">
<title>腾讯视频云快直播示例</title>
<!-- 引入播放器 css 文件 -->
<link href="https://web.sdk.cloud.tencent.cn/player/tcplayer/release/v4.5.0/tcplayer.min.css" rel="stylesheet">
<script src="https://cdn.bootcdn.net/ajax/libs/vConsole/3.9.1/vconsole.min.js"></script>
<script src="https://video.sdk.qcloudecdn.com/web/TXLivePlayer-1.2.3.min.js"></script>
<!-- 引入播放器 js 文件 -->
<script src="https://web.sdk.qcloud.com/player/tcplayer/release/v4.8.0/tcplayer.v4.8.0.min.js"></script>
<!-- 示例 CSS 样式可自行删除 -->
<style>
html,body{
margin: 0;
padding: 0;
}
.tcplayer {
margin: 0 auto;
}
@media screen and (max-width: 640px) {
.tcplayer,
#player-container-id {
width: 100%;
height: 270px;
}
}
/* 设置logo在高分屏的显示样式 */
@media only screen and (min-device-pixel-ratio: 2), only screen and (-webkit-min-device-pixel-ratio: 2) {
.tcp-logo-img {
width: 50%;
}
}
.button-container{
text-align: center;
}
</style>
</head>
<body>
<button id="other">其他场景流</button>
<button id="1080">1080</button>
<button id="720">720</button>
<button id="540">540</button>
<button id="auto">自动</button>
<br>
分辨率:
<div id="rate"></div>
<!-- 设置播放器容器 -->
<video id="player-container-id" preload="auto" width="640" height="360" playsinline webkit-playsinline>
</video>
<!-- <video id="player-native" preload="auto" width="414" height="280" playsinline webkit-playsinline controls
src="https://5664.liveplay.myqcloud.com/live/5664_harchar1.m3u8?txSecret=f22a813b284137ed10d3259a7b5c224b&txTime=6403f7bb">
</video> -->
<div class="button-container">
<!-- <button onclick="playFlv()">flv</button> -->
<!-- <button onclick="playHls()">hls</button> -->
<!-- <button onclick="playFail()">模拟快直播-2005事件降级播放hls</button> -->
<!-- <button onclick="fullscreen()">webkit fullscreen</button> -->
<!-- <button onclick="fullscreen('#player-native')">fullscreen</button> -->
</div>
<!-- <video class="tcplayer" id="player1" preload="auto" width="640" height="360" playsinline webkit-playsinline>
</video> -->
<!-- <video class="tcplayer" id="player2" preload="auto" width="640" height="360" playsinline webkit-playsinline>
</video> -->
<script>
if (TCPlayer.browser.IS_ANDROID || TCPlayer.browser.IS_IOS) {
const vConsole = new VConsole({ maxLogNumber: 1000 });
}
// webrtc://global-lebtest-play.myqcloud.com/live/lebtest?txSecret=f22a813b284137ed10d3259a7b5c224b&txTime=69f1eb8c&tabr_bitrates=deven540p,deven720p,deven1080p&tabr_start_bitrate=deven1080p
// webrtc://global-lebtest-play.myqcloud.com/live/lebtest?txSecret=f22a813b284137ed10d3259a7b5c224b&txTime=69f1eb8c&tabr_bitrates=deven540p,deven720p,deven1080p&tabr_start_bitrate=deven720p
// webrtc://global-lebtest-play.myqcloud.com/live/lebtest?txSecret=f22a813b284137ed10d3259a7b5c224b&txTime=69f1eb8c&tabr_bitrates=deven540p,deven720p,deven1080p&tabr_start_bitrate=deven540p
var player = TCPlayer('player-container-id',{
// 封面图
autoplay: true,
// poster:'https://1256993030.vod2.myqcloud.com/20f8b585vodgzp1256993030/0/player/5285890781393938051.png',
multiResolution: {
sources: {
'FHD': [
{
src: 'webrtc://global-lebtest-play.myqcloud.com/live/lebtest?txSecret=f22a813b284137ed10d3259a7b5c224b&txTime=69f1eb8c&tabr_bitrates=deven540p,deven720p,deven1080p&tabr_start_bitrate=deven1080p',
}
],
'HD': [
{
src: 'webrtc://global-lebtest-play.myqcloud.com/live/lebtest?txSecret=f22a813b284137ed10d3259a7b5c224b&txTime=69f1eb8c&tabr_bitrates=deven540p,deven720p,deven1080p&tabr_start_bitrate=deven720p',
}
],
'SD': [
{
src: 'webrtc://global-lebtest-play.myqcloud.com/live/lebtest?txSecret=f22a813b284137ed10d3259a7b5c224b&txTime=69f1eb8c&tabr_bitrates=deven540p,deven720p,deven1080p&tabr_start_bitrate=deven540p',
}
],
'AUTO': [
{
src: 'webrtc://global-lebtest-play.myqcloud.com/live/lebtest?txSecret=f22a813b284137ed10d3259a7b5c224b&txTime=69f1eb8c&tabr_bitrates=deven540p,deven720p,deven1080p&tabr_start_bitrate=deven1080p&tabr_control=auto',
}
]
},
},
showOrder:['AUTO', 'SD','HD','FHD'],
defaultRes: 'SD',
// sources: [{
// // 快直播地址
// src: 'webrtc://5664.liveplay.myqcloud.com/live/5664_harchar1?txSecret=f22a813b284137ed10d3259a7b5c224b&txTime=6403f7bb'
// },{
// // HLS直播地址
// src: 'https://5664.liveplay.myqcloud.com/live/5664_harchar1.m3u8?txSecret=f22a813b284137ed10d3259a7b5c224b&txTime=6403f7bb'
// }],
// 可配置参数说明 https://cloud.tencent.com/document/product/881/30820#options-.E5.8F.82.E6.95.B0.E5.88.97.E8.A1.A8
controlBar: {
// 是否显示进度条
// progressControl:false
},
//
// nativeControlsForTouch:true,
webrtcConfig: {
// 参考 快直播 config 说明
},
hlsConfig: {
// 参考 hls.js config 说明 https://github.com/video-dev/hls.js/blob/f3c6b2712e63ee6ed32957e4035254856d24605e/docs/API.md#fine-tuning
}
});
document.getElementById('other').addEventListener('click', function() {
player.src('webrtc://5664.liveplay.myqcloud.com/live/5664_harchar1?txSecret=f22a813b284137ed10d3259a7b5c224b&txTime=6403f7bb');
});
document.getElementById('1080').addEventListener('click', function() {
player.src('webrtc://global-lebtest-play.myqcloud.com/live/lebtest?txSecret=f22a813b284137ed10d3259a7b5c224b&txTime=69f1eb8c&tabr_bitrates=deven540p,deven720p,deven1080p&tabr_start_bitrate=deven1080p');
});
document.getElementById('720').addEventListener('click', function() {
player.src('webrtc://global-lebtest-play.myqcloud.com/live/lebtest?txSecret=f22a813b284137ed10d3259a7b5c224b&txTime=69f1eb8c&tabr_bitrates=deven540p,deven720p,deven1080p&tabr_start_bitrate=deven720p');
});
document.getElementById('540').addEventListener('click', function() {
player.src('webrtc://global-lebtest-play.myqcloud.com/live/lebtest?txSecret=f22a813b284137ed10d3259a7b5c224b&txTime=69f1eb8c&tabr_bitrates=deven540p,deven720p,deven1080p&tabr_start_bitrate=deven540p');
});
document.getElementById('auto').addEventListener('click', function() {
player.src('webrtc://global-lebtest-play.myqcloud.com/live/lebtest?txSecret=f22a813b284137ed10d3259a7b5c224b&txTime=69f1eb8c&tabr_bitrates=deven540p,deven720p,deven1080p&tabr_start_bitrate=deven1080p&tabr_control=auto');
});
player.on('ready', function() {
console.log('player on ready');
// 禁止拖拽进度条 与隐藏进度条不能同时配置。
// player.controlBar.progressControl.disable();
});
player.on('webrtcevent', function(event) {
console.log('webrtcEvent', event);
});
player.on('webrtcfallback', function(event) {
console.log('webrtcfallback', event);
});
player.on('webrtcstats', function(data) {
try {
document.getElementById('rate').innerHTML = data.data.video.frameWidth + 'x' + data.data.video.frameHeight;
} catch (e) {
console.log('e', e.message);
}
// console.log('data', event, data);
});
// 播放器事件
var events = [
'loadstart',
'suspend',
'abort',
'error',
'emptied',
'stalled',
'loadedmetadata',
'loadeddata',
'canplay',
'canplaythrough',
'playing',
'waiting',
'seeking',
'seeked',
'ended',
'durationchange',
'timeupdate',
'progress',
'play',
'pause',
'ratechange',
'resize',
'volumechange'
];
events.forEach(function(val, i){
player.on(val, function (event) {
if(val !='timeupdate'){
console.log('player event', val);
}
if(val === 'waiting'){
console.log('waiting事件可以标记为卡顿开始');
}
if(val === 'playing'){
console.log('开始播放或恢复播放,可以标记为卡顿结束');
}
});
});
function playFail() {
if (player.src().indexOf('webrtc://')===0) {
player.tech(true).webrtcProvider && player.tech(true).webrtcProvider.onPlayEvent(-2005);
}
}
function fullscreen(elementID) {
if (elementID){
document.querySelector(elementID).webkitEnterFullScreen();
return;
}
document.querySelector('video').webkitEnterFullScreen();
}
</script>
</body>
</html>