栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Vue中使用can-autoplay插件实现浏览器不支持自动播放音频时提示点击

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Vue中使用can-autoplay插件实现浏览器不支持自动播放音频时提示点击

场景

Vue中使用speak-tts插件实现点击按钮后进行语音播报(TTS/文字转语音):

Vue中使用speak-tts插件实现点击按钮后进行语音播报(TTS/文字转语音)_BADAO_LIUMANG_QIZHI的博客-CSDN博客

在上面可以实现在360极速浏览器中自动播放音频正常,但是在Chrome浏览器中,如果

没有任何事件触发的情况下不会自动播放。

为什么不能实现自动语音播报。

chrome浏览器在18年4月起,就在桌面浏览器全面禁止了音视频的自动播放功能。

严格地来说,是Chrome不允许在用户对网页进行触发之前播放音频。

不光是这样,在页面加载完毕的情况下,用户没有click、dbclick、touch等主动交互行为,

使用js直接调用.play() 方法的话,chrome都会抛出如下错误:Uncaught (in promise) DOMException;

can-autoplay插件:

can-autoplay - npm

可以检测浏览器是否支持自动播放音频和视频。

注:

博客:
BADAO_LIUMANG_QIZHI的博客_霸道流氓气质_CSDN博客-C#,SpringBoot,架构之路领域博主
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。

实现

1、插件安装

npm install can-autoplay

2、插件引入

import canAutoPlay from 'can-autoplay';

3、检测是否支持自动播放

      canAutoPlay.audio().then(({ result }) => {
        //支持自动播放
     
        } else {
        
        }
      });

4、用法示例

      //检测是否支持媒体自动播放
      canAutoPlay.audio().then(({ result }) => {
        //支持自动播放
        if (result === true) {
          this.speech
            .speak({ text: "叮叮当 叮叮当 响了响叮当" })
            .then(() => {});
        } else {
          this.$alert(
            "检测到您的浏览器不支持媒体自动播放,是否同意播放音频",
            "提示",
            {
              /confirm/iButtonText: "确定",
              callback: (action) => {
                this.audio.play();
              },
            }
          );
        }
      });

5、完整示例代码





6、运行在谷歌浏览器中,如果刷新后没有任何交互事件则会提示,如果有则不提示

7、运行在360极速浏览器中刷新之后即使没有任何事件,也能支持自动播放,不会弹出提示。

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/711956.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号