jquery - vimeo api:多个视频的播放按钮
问题描述
我有不同的 vimeo-iframe 嵌入,我希望每个嵌入都有一个自己的播放按钮。
我收到错误:未捕获的类型错误:player.play 不是函数
html:
<div class="video">
<div style="padding:56.25% 0 0 0;position:relative;">
<iframe class="vimeo" src="https://player.vimeo.com/video/00000001?badge=0&autopause=0&player_id=0&app_id=0000" frameborder="0" allow="autoplay; fullscreen; picture-in-picture" allowfullscreen="" style="position:absolute;top:0;left:0;width:100%;height:100%;"></iframe>
<div class="btn">play</div>
</div>
<div class="video">
<div style="padding:56.25% 0 0 0;position:relative;">
<iframe class="vimeo" src="https://player.vimeo.com/video/00000002?badge=0&autopause=0&player_id=0&app_id=0000" frameborder="0" allow="autoplay; fullscreen; picture-in-picture" allowfullscreen="" style="position:absolute;top:0;left:0;width:100%;height:100%;"></iframe>
<div class="btn">play</div>
</div>
...
js:遍历所有 iframe 并初始化播放器
$(document).ready(function () {
var x = document.querySelectorAll("iframe");
var nodelist = x.length;
for (i = 0; i < nodelist; i++) {
el = x[i];
var player = new Vimeo.Player(x[i]);
player.on('play', function () {
console.log('played the video!');
});
player.on('ended', function () {
console.log('ended the video!');
});
}
});
js:点击启动多个播放器之一
$(".btn").on('click', function() {
var player = $(this).siblings("iframe")[0];
console.log(player);
player.play();
});
更新:
使用此代码我没有收到错误,但我如何控制哪个按钮将启动哪个视频?目前第一个按钮正在开始最后一个视频
var x = document.querySelectorAll("iframe");
var nodelist = x.length;
for (i = 0; i < nodelist; i++) {
el = x[i];
var player = new Vimeo.Player(x[i]);
document.querySelector('.play').addEventListener('click', function() {
player.play();
});
player.on('play', function () {
console.log('played the video!');
});
}
解决方案
document.querySelector('.play')
无论您循环多少次,它确实是第一个按钮。改为使用document.querySelectorAll(".play")[i]
。
var video_frame = document.querySelectorAll("iframe");
var play_btn = document.querySelectorAll(".play");
var nodelist = video_frame.length;
for (i = 0; i < nodelist; i++) {
el = video_frame[i];
let player = new Vimeo.Player(x[i]);
play_btn[i].addEventListener('click', function() {
player.play();
});
player.on('play', function () {
console.log('played the video!');
});
}
推荐阅读
- javascript - 仅在 vimeo 视频上隐藏喜欢、观看和分享
- sql - 我应该创建一个代理键吗?
- android - 如何在 kotlin 中通过改造处理 http 响应中的空数组
- ios - 如何创建像 Apple 新闻应用一样的导航过渡?
- python-3.x - dict键在python中插入和更新键值对
- kubernetes - 删除release时Helm不删除StatefulSet
- d3.js - 修改可折叠缩进树中的条宽或显示大小
- javascript - 在特定值之后获取部分字符串
- android - 如何在 Web 视图完全呈现之前摆脱白屏?
- java - 如何在jar中包含静态文件