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

Jupyter Notebook中控制视频组件播放位置的相关方法咨询

Jupyter Notebook视频播放位置控制解决方案

方案1:ipywidgets.HTML + 原生JavaScript实现 (无需额外安装第三方组件)

该方案直接利用Jupyter支持注入JS的特性操作HTML5原生video元素,兼容性最佳,不存在组件失效问题。

实现代码

import ipywidgets as widgets
from IPython.display import display, Javascript

# 替换为你的本地/在线视频地址
video_path = "demo.mp4"

# 定义带唯一标识的视频容器
video_html = widgets.HTML(f"""
<video id="custom_video_player" width="720" controls>
  <source src="{video_path}" type="video/mp4">
</video>
<script>
// 视频加载完成后自动同步滑块最大值为视频总时长
document.getElementById("custom_video_player").addEventListener('loadedmetadata', function() {{
    const slider = document.querySelector('.jupyter-widgets.widget-slider input');
    if (slider) slider.max = this.duration;
}});
</script>
""")

# 播放位置控制滑块
time_slider = widgets.FloatSlider(min=0, max=100, step=0.5, value=0, description="跳转位置(秒):")

# 滑块变化回调:调用JS修改视频播放位置
def update_video_time(change):
    display(Javascript(f'document.getElementById("custom_video_player").currentTime = {change["new"]}'))

time_slider.observe(update_video_time, names='value')

# 组合展示所有组件
display(video_html, time_slider)

方案2:ipywebrtc组件实现 (原生支持播放属性控制)

ipywebrtc是长期维护的成熟交互组件库,其中的VideoStream类原生暴露了current_time、duration、playing等可读写属性,直接支持ipywidgets的双向绑定逻辑,适合需要复杂交互的场景。

安装方式

运行命令完成安装:pip install ipywebrtc

实现代码

from ipywebrtc import VideoStream
import ipywidgets as widgets

# 加载本地视频,也可使用VideoStream.from_url()加载在线视频
video = VideoStream.from_file("demo.mp4")

# 等待视频加载完成后设置滑块最大值,也可手动指定视频时长
import time
time.sleep(0.5)
time_slider = widgets.FloatSlider(min=0, max=video.duration, step=0.5, description="跳转位置(秒):")

# 双向绑定滑块值与视频播放位置,无需额外写回调
widgets.jslink((video, 'current_time'), (time_slider, 'value'))

# 可选:添加播放暂停控制按钮
play_btn = widgets.ToggleButton(value=False, description="播放/暂停")
widgets.jslink((video, 'playing'), (play_btn, 'value'))

# 组合展示
widgets.VBox([video, time_slider, play_btn])

内容的提问来源于stack exchange,提问作者Abhi Thosar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 06:48:09