QQ浏览器中video标签的播放按钮显示异常怎么办?
在QQ浏览器里用video标签做视频播放时,系统自带的播放按钮总是显示成灰色不可点击状态,但视频能正常自动播放。其他浏览器都正常,这是为什么啊?
代码就很简单这样写的:
<video id="myVideo" style="width:100%">
<source src="demo.mp4" type="video/mp4">
</video>
我试过加controls属性、设置width/height、用JavaScript调用play()方法,按钮虽然能显示出来但点击没反应。控制台也没报错,求大神指点迷津…
你可以尝试在video标签上添加
muted属性,这样即使没有用户交互,视频也可以静音自动播放,播放控件应该也会正常工作。不过这可能不符合你的需求,因为你希望视频是有声音的。另一种方法是使用JavaScript监听用户的某种交互事件(比如点击页面),然后在这个事件处理函数中调用video元素的
play()方法。这样可以确保用户已经与页面进行了互动,浏览器会允许视频播放并且控件可以正常操作。这里有一个简单的示例代码:
这个脚本会在用户点击页面的任何地方时尝试播放视频。注意,
play()方法返回一个Promise,如果播放被阻止了,Promise会被拒绝,所以我们需要处理这个可能的错误。希望这能解决问题,有时候这些浏览器兼容性问题真是挺头疼的。
解决办法是这样的:你需要同时设置autoplay、muted和playsinline这三个属性。QQ浏览器默认会把非静音的视频播放按钮置灰,加上muted就能解决问题。
修改后的代码大概是这样:
要是想更稳妥点,可以用wp_enqueue_script加载个小脚本来处理兼容性问题:
这个方法用到了WordPress的钩子函数,在页面加载时自动处理所有video标签。记得把这段代码放到你主题的functions.php文件里就行。
说实话,这种浏览器特定的问题最烦人了,不过加上这些处理基本都能正常工作。调试这类问题真是费头发啊。