You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何禁用嵌入Vimeo视频的循环播放并触发ended事件

Vimeo嵌入视频ended事件不触发?教你强制单次播放

问题根源

你加的loop=0参数没生效,不是自动播放规则的锅——Vimeo的URL参数优先级很低,而且如果视频在Vimeo后台开了循环,URL参数会直接被覆盖。另外,仅靠URL参数没法彻底禁用播放器的默认循环 fallback,导致ended事件根本触发不了。

解决步骤

别纠结URL参数了,直接用Vimeo Player API来控制,这是最靠谱的方式:

1. 引入Player SDK

先在页面里加官方的SDK脚本,不然没法操控播放器:

<script src="https://player.vimeo.com/api/player.js"></script>

2. 初始化播放器并强制关闭循环

给iframe加个ID,然后用JS初始化播放器,明确设置loop: false,同时监听ended事件:

<body>
    <iframe id="my-vimeo-player" src="https://player.vimeo.com/video/717499153?muted=1&controls=0&autoplay=1" width="240" height="320" frameborder="0" allow="autoplay; fullscreen; picture-in-picture" allowfullscreen="" title="video"></iframe>

    <script src="https://player.vimeo.com/api/player.js"></script>
    <script>
        const player = new Vimeo.Player('my-vimeo-player', {
            loop: false
        });

        // 监听播放结束事件
        player.on('ended', () => {
            // 这里写你要执行的操作
            console.log('视频播完了!');
        });
    </script>
</body>

3. 额外检查:Vimeo后台设置

如果还是不行,登录Vimeo后台找到这个视频,进入「嵌入设置」,看看是不是开了循环选项——要是后台开了,不管你加什么参数都会循环,手动关掉就行。

关于自动播放的补充

你设置了muted=1,符合浏览器自动播放的静音要求,所以自动播放本身没问题,不会影响ended事件触发。

内容的提问来源于stack exchange,提问作者Wojtek Kochanowski

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 16:45:35