Javascript 保持有多少人观看某段视频的状态?
我想为视频制作一种热图。我有一个小页面,同一个视频播放两次。我已经有一种方法可以从单个视频中获得播放的部分,但现在我应该能够聚合数据,绘制一个图表,显示视频的哪个部分观看了一次、两次或根本没有观看 示例输出如下所示Javascript 保持有多少人观看某段视频的状态?,javascript,arrays,Javascript,Arrays,我想为视频制作一种热图。我有一个小页面,同一个视频播放两次。我已经有一种方法可以从单个视频中获得播放的部分,但现在我应该能够聚合数据,绘制一个图表,显示视频的哪个部分观看了一次、两次或根本没有观看 示例输出如下所示 played1 = [33,36][40,44][52,56]... played2 = [31,35][42,46][55,58]... 输出应该是31-33打了一次,33-35打了两次,35-36打了一次,36-40没有打 我正接近一个解决方案,但出现了一些问题,我不知道是什么
played1 = [33,36][40,44][52,56]...
played2 = [31,35][42,46][55,58]...
输出应该是31-33打了一次,33-35打了两次,35-36打了一次,36-40没有打
我正接近一个解决方案,但出现了一些问题,我不知道是什么,这是我的代码:
function getPlayData(r,e){
var Played = 0;
var data = [];
if(r.played.length > 0){
for(var i = 0; i < r.played.length; i ++){
for(var j = 0; j < parseInt(r.duration); j ++ ){
if(parseInt(r.played.start(i)) - j === 0){
Played ++;
data.push(j,Played);
}
else if(parseInt(r.played.end(i)) - j === 0){
Played --;
data.push(j,Played);
}
}
}
for(var i = 0; i < e.played.length; i ++){
for(var k = 0; k < parseInt(e.duration); k ++){
if(parseInt(e.played.start(i)) - k === 0){
Played++;
data.push(k,Played);
}
else if(parseInt(e.played.end(i)) - k === 0){
Played--;
data.push(k,Played);
}
}
}
}
return data;
}
函数getPlayData(r,e){
var=0;
var数据=[];
如果(r.played.length>0){
for(变量i=0;i[编辑]我使用parseInt方法,因为它都是浮点数据,我读过很多关于浮点不精确的文章,所以我想让它与整数一起工作,然后再使它对浮点更精确
function getPlayData(r,e){
var Played = 0;
var data = [];
if(r.played.length > 0){
for(var i = 0; i < r.played.length; i ++){
for(var j = 0; j <= parseInt(r.duration); j ++ ){
if(parseInt(r.played.start(i)) - j === 0){
Played ++;
data.push(j,Played);
}
if(parseInt(e.played.start(i)) - j === 0){
Played++;
data.push(j,Played);
}
if(parseInt(r.played.end(i)) - j === 0){
Played --;
data.push(j,Played);
}
if(parseInt(e.played.end(i)) - j === 0){
Played--;
data.push(j,Played);
}
}
}
}
return data;
}
函数getPlayData(r,e){
var=0;
var数据=[];
如果(r.played.length>0){
for(变量i=0;ifunction getPlayData(r,e){
var Played = 0;
var data = [];
if(r.played.length > 0){
for(var i = 0; i < r.played.length; i ++){
for(var j = 0; j <= parseInt(r.duration); j ++ ){
if(parseInt(r.played.start(i)) - j === 0){
Played ++;
data.push(j,Played);
}
if(parseInt(e.played.start(i)) - j === 0){
Played++;
data.push(j,Played);
}
if(parseInt(r.played.end(i)) - j === 0){
Played --;
data.push(j,Played);
}
if(parseInt(e.played.end(i)) - j === 0){
Played--;
data.push(j,Played);
}
}
}
}
return data;
}
函数getPlayData(r,e){
var=0;
var数据=[];
如果(r.played.length>0){
for(变量i=0;ir
和e
添加一些示例数据吗?r,e变量是加载了hls js的视频对象。如果转到此页面并单击“切换统计显示”您可以在底部看到这些变量中的内容扫描您为两个变量添加一些示例数据r
和e
?r,e变量是加载了hls js的视频对象。如果转到此页面并单击“切换统计显示”,您可以在底部看到这些变量中的内容