1. 点播loop循环播放结束不能从头开始播放
原因:播放结束时,正常应该是跳转到时间点0开始继续播放,此时会触发seeking事件,而播放器内部在此事件加了个防卡顿定时器处理,问题恰恰就出在这边(函数_checkAndApplyUnbufferedSeekpoint);此时判断缓冲区的时候,缓冲区只有最后一个缓冲区,这个缓冲区可能就保留了视频的最后一段时间缓存,此时这个定时器内部处理会将时间点0重置为该缓冲区的起始位置时间点
解决:定时器内部处理时判断时间点是否为0,假如是则不进行重置处理
2. 限期
function deadline() {
const d = '1';
const m = '1';
const y = '2019';
const dl = `${y}/${m}/${d}`;
const future = new Date(dl);
const current = new Date();
return current > future;
}
3. 参数格式化,如[XXX][XXX]XXXX
const formatArguments = (args) => {
let res = args;
if (Array.isArray(args)) {
const newArgs = args.map((arg) => {
if (Object.prototype.toString.call(arg).slice(8, -1) === "Object") {
return JSON.stringify(arg);
} else {
return arg;
}
});
const length = newArgs.length;
if (length <= 1) return newArgs;
if (length === 2) {
res = '[' + newArgs[0] + ']' + newArgs[1];
} else {
res = '[' + newArgs.slice(0, 2).join("][") + ']' + newArgs.slice(2).join('');
}
}
return res;
}
4 ios低版本Demo运行不了
需要注意的是在低版本系统上,不要用ES6语法写Demo
5 safari不支持播放多码率格式的M3U8文件
网友评论