Slider Revolution视频在Chrome中无法播放,报play()被pause()中断错误
你碰到的这个Uncaught (in promise) DOMException: The play() request was interrupted by a call to pause()错误,在Chrome环境里算是很典型的播放冲突问题,大概率和浏览器自动播放限制、组件内部逻辑互扰有关。我整理了几个实用的排查和解决步骤,你可以挨个试试:
优先检查Chrome自动播放策略适配
Chrome现在对自动播放视频有严格的规则:默认只有静音视频能自动播放,有声视频必须等待用户主动交互(比如点击页面)才能启动。你先打开Slider Revolution的视频设置面板,确认静音自动播放选项已经开启。如果必须要带声音播放,那得给视频加个触发按钮,让用户点击后再调用播放逻辑。排查Slider Revolution内部逻辑冲突
有时候组件的自动轮播、滚动触发暂停等功能,会和视频播放逻辑打架:- 先临时关闭Slider的自动轮播切换功能,测试视频是否能正常播放;
- 检查有没有自定义JS代码在监听页面事件(比如滚动)时,误调用了视频的
pause()方法; - 把Slider Revolution升级到最新版本,旧版本很可能存在和新版Chrome不兼容的播放逻辑Bug。
给play()方法添加异常捕获
浏览器中video.play()会返回一个Promise,一旦播放被中断(比如被pause()打断)就会抛出异常。你可以给视频的播放调用加上异常处理,避免控制台报错影响其他功能。举个简单的例子:// 替换成你Slider中视频的选择器 const sliderVideo = document.querySelector('.rev_slider video'); if (sliderVideo) { sliderVideo.play().catch(error => { console.log('播放请求被中断,可在这里添加处理逻辑:', error); // 比如可以提示用户点击播放,或者尝试静音后重新播放 }); }验证视频本身的兼容性
虽然这个错误提示不是直接指向格式问题,但如果视频编码不兼容Chrome,也可能导致播放异常进而触发暂停逻辑。确保视频是Chrome支持的格式(比如MP4/H.264),必要时用编码工具重新导出后再测试。排查浏览器扩展的干扰
不少广告拦截器、视频控制类的浏览器扩展,会自动暂停页面上的视频。你可以试试用Chrome隐身模式打开页面(隐身模式会禁用所有扩展),如果视频能正常播放,那就逐个排查已安装的扩展,找出冲突的那个。
内容的提问来源于stack exchange,提问作者Palani Samy

