201 Star 682 Fork 172

Pear / PearPlayer.js

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
player-test.html 5.60 KB
一键复制 编辑 原始数据 按行查看 历史
snowinszu 提交于 2018-05-10 18:32 . update
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Pear Player</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<div id="main">
<!--<video id="pearvideo" controls>-->
<video id="pearvideo" src="https://qq.webrtc.win/tv/Pear-Demo-Yosemite_National_Park.mp4" controls>
<!--<video id="pearvideo" src="https://qq.webrtc.win/tv/Pear-Demo-Corporate-Video-V5.mp4" controls>-->
<!--<video id="pearvideo" src="https://qq.webrtc.win/tv/Pear-demo-your-name.mp4" controls>-->
<!--<video id="pearvideo" src="http://yoyotech.xin/Pear-Demo-Corporate-Video-1min-3.2Mbps.mp4" controls>-->
<!--<video id="pearvideo" src="https://qq.webrtc.win/tv/Pear-Demo-SoundOfMusic_172.mp4" controls>-->
</video>
</div>
<script src="../dist/pear-player.js"></script>
<!--<script src="../dist/pear-player.min.js"></script>-->
<script>
// console.log(encodeURI('http://localhost:6075/downloader/binary-file?src=https://qq.webrtc.win/binary/Pear-Demo-kodexplorer4.00.zip'))
//第一个参数为video标签的id或class
if (PearPlayer.isMSESupported()) {
var player = new PearPlayer('#pearvideo', {
// src: 'https://qq.webrtc.win/tv/Pear-Demo-Yosemite_National_Park.mp4',
scheduler: 'IdleFirst', //节点调度算法,默认IdleFirst,其它内置调度算法有“WebRTCFirst“和”CloudFirst”
autoplay: true, //是否自动播发视频,默认true
interval: 5000, //滑动窗口的时间间隔,单位毫秒,默认5s
useDataChannel: false, //是否开启data channel,默认true
dataChannels: 20, //创建data channel的最大数量,默认20
useTorrent: true, //是否开启Browser P2P(基于Webtorrent),默认true
// magnetURI: 'magnet:?xt=...', //可手动传入magnetURI,需先将useTorrent设为true
// trackers:["wss://tracker.openwebtorrent.com"], //可手动传入tracker服务器,需先将useTorrent设为true
sources: [], //指定下载源,增加这个字段后pearplayer不会再向后台请求节点,建议下载源多于5个以保证流畅播放
useMonitor: true, //是否开启monitor,会稍微影响性能,默认true
BTMode: false, //是否开启纯BT下载模式(基于webtorrent),默认false,
debug: true, //是否开启debug模式,开启后可以在console中查看log,默认false
algorithm: 'pull', //下载算法,有‘push’和‘pull’两种,默认‘pull’
geoEnabled: false //是否开启geo接口,默认false
});
player.on('fallback', onFallback); //播放器出现异常时的回调函数
player.on('begin', onBegin);              //开始下载时触发
player.on('progress', onProgress); //回调目前的下载进度
player.on('cloudspeed', onCloudSpeed); //来自cloud节点的HTTP的瞬时下载速度
player.on('fogspeed', onFogSpeed); //来自fog的节点(包括HTTP和WebRTC)的瞬时下载速度
player.on('fograte', onWebRTCRate);          //fog节点的下载比率(下载的字节数除以总的字节数)
player.on('buffersources', onBufferSources); //buffer map,记录每个buffer的下载源类型,其中s: server n: node d: data channel b: browser
player.on('done', onDone);         //结束下载时触发
player.on('traffic', onTraffic); //节点流量统计,每次下载buffer都会触发该事件
player.on('sourcemap', onSourceMap); //记录每个buffer的下载源类型,其中s: server n: node d: data channel b: browser
player.on('metadata', onMetaData);
player.on('canplay', onCanPlay);
} else {
fallback()
}
function onBegin(fileLength, chunks) {
console.log('start downloading buffer by first aid, file length is:' + fileLength/1024/1024 + ' total chunks:' + chunks);
}
function onProgress(downloaded) {
console.log('Progress: ' + (downloaded * 100).toFixed(1) + '%');
}
function onCloudSpeed(speed) {
console.log('Cloud download speed: ' + speed + 'KBps');
}
function onFogSpeed(speed) {
console.log('Fog download speed: ' + speed + 'KBps');
}
function onWebRTCRate(p2pRate) {
console.log('Fog Ratio: ' + (p2pRate * 100).toFixed(1) + '%');
}
function onDone() {
console.log('finished downloading buffer by first aid');
}
function onFallback() {
fallback();
}
function onBufferSources(bufferSources) { //s: server n: node d: data channel b: browser
console.log('Current Buffer Sources:' + bufferSources);
console.log(JSON.stringify(player.debugInfo));
}
function onTraffic(mac, size, type) {
console.log('type:'+type+' mac:'+mac+' downloaded:'+size/1024/1024+'MB');
}
function onSourceMap(sourceType, index) {
console.log('Received source type:' + sourceType + ' index:' + index);
}
function onMetaData(metadata) {
console.log('metadata bitrate:'+Math.round(metadata.bitrate/1024)+' KB/s');
}
function onCanPlay(delay) {
console.log('canplay delay:' + delay);
}
function fallback() {
var video = document.getElementById('pearvideo');
video.play()
}
</script>
</body>
</html>
JavaScript
1
https://gitee.com/PearInc/PearPlayer.js.git
git@gitee.com:PearInc/PearPlayer.js.git
PearInc
PearPlayer.js
PearPlayer.js
master

搜索帮助