audio音频不能自动播放的解决方法

这篇具有很好参考价值的文章主要介绍了audio音频不能自动播放的解决方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

由于浏览器限制的原因,不允许自动播放audio音频,尝试网上的方法后也没有进展(如果有解决方法,欢迎评论~)


一、首先创建 audio 标签

<audio class="g-back-music" src="" ref="backMusicRef" loop preload hidden autoplay></audio>

二、因为在页面刷新后需要先执行动画,动画完成后才去播放音乐,所以在执行 mounted 函数时,先加载音乐源

mounted() {
    if(this.sGetCurrentMusicSrc) {
        // 存在背景音乐,加载音乐源
        this.$refs.backMusicRef.src = this.sGetCurrentMusicSrc;
    }
}

三、在动画完成后,进行背景音乐的初始化

        1. 执行 audio 标签的play方法(目前来看安卓自带浏览器是支持自动播放的)

        2. 微信浏览器的处理(如果不加,IOS微信端就不支持自动播放了)

        3. 增加事件监听(PC端 click事件、手机端 touchstart 事件)

        4. 变量说明:bIsMusicPlay(控制音乐是否播放)

// 初始化音乐
fnMusicInit() {
    this.$refs.backMusicRef.play().then(() => {
        this.bIsMusicPlay = true;
    }).catch(()=> {
        this.bIsMusicPlay = false;
    })
    if(navigator.userAgent.toLowerCase().match(/MicroMessenger/i) == "micromessenger") {
        // 微信浏览器
        WeixinJSBridge.invoke('getNetworkType', {}, ()=> {
            this.$refs.backMusicRef.play().then(()=> {
                this.bIsMusicPlay = true;
            }).catch(()=> {
                this.bIsMusicPlay = false;
            })
        });
    }
    let fnPlay = (event)=> {
        let className = event.target.className;
        if(typeof className === 'object' || typeof className === 'string' && !className.includes('g-music')) {
            // 点击非音乐开关按钮,播放音乐
            this.$refs.backMusicRef.play().then(()=> {
                this.bIsMusicPlay = true;
            }).catch(()=> {
                this.bIsMusicPlay = false;
            })
        }
        let type  = 'ontouchstart' in document.documentElement ? 'touchstart' : 'mousedown';
        // 最后记得移除监听
        document.removeEventListener(type, fnPlay);
    }
    // 监听用户主动操作
    if('ontouchstart' in document.documentElement) {
        document.addEventListener('touchstart', fnPlay)
    } else {
        document.addEventListener('mousedown', fnPlay)
    }    
}

四、音乐的播放,暂停

fnMusicOpera(type) {
    if(type === 'play') {
        // 播放
        this.$refs.backMusicRef.play().then(()=> {
            this.bIsMusicPlay = true;
        }).catch(()=> {
            this.bIsMusicPlay = false;
        }) 
    } else {
        // 暂停
        this.$refs.backMusicRef.pause();
        this.bIsMusicPlay = false;
    }
}

提示

替换音乐源后,需要手动暂停音乐,防止在音乐关闭的情况下自动播放

参考链接:https://www.panyanbin.com/article/2940754d.html文章来源地址https://www.toymoban.com/news/detail-508629.html

到了这里,关于audio音频不能自动播放的解决方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue3 -- 使用audio标签播放音频

    公司系统内的审批页面,前端要根据后台推送的信息,使用’提示音’提醒用户进行对应审批操作。 vue3 项目 简介 | Vue.js (vuejs.org) TypeScript TypeScript: JavaScript With Syntax For Types. (typescriptlang.org) vite Vite | 下一代的前端工具链 (vitejs.dev) 下载好使用音频文件 音效网,保存本地。 将

    2024年02月01日
    浏览(46)
  • vue实现音频audio列表循环,实现暂停播放切换

    功能界面如下 功能使用如下: 首先根据后端返回的音频地址进行渲染,其中playAudioSrc字段用来控制暂停样式还是播放样式,audio进行隐藏 vue处理逻辑如下

    2024年02月11日
    浏览(44)
  • flutter开发实战-just_audio实现播放音频暂停音频设置音量等

    flutter开发实战-just_audio实现播放音频暂停音频设置音量等 最近开发过程中遇到需要播放背景音等音频播放,这里使用just_audio来实现播放音频暂停音频设置音量等 在pubspec.yaml引入just_audio 在iOS上,video_player使用的是AVPlayer进行播放。 在Android上,video_player使用的是ExoPlayer。 2.

    2024年02月13日
    浏览(48)
  • 前端实现页面自动播放音频方法

    前提 需要页面自动播放一段报警声音,将audio标签的 autoplay 属性设置为true,发现自动播放失败,并出现如下报错: Uncaught (in promise) DOMException: play() failed because the user didn’t interact with the document first. 为什么要禁止自动播放音频与视频 网页加载完成后立即播放音频(或带有音

    2024年02月09日
    浏览(47)
  • Unity 之利用Audio Source(音频源)组件用于播放声音

    Unity中的Audio Source(音频源)是一个用于播放声音的组件,通常附加到游戏对象上,以便在游戏中播放音频效果、音乐或对话。以下是Audio Source的详细介绍: 添加Audio Source : 要在Unity中使用Audio Source,首先需要将其附加到一个游戏对象上。通常,您可以选择场景中的一个空游

    2024年02月09日
    浏览(52)
  • 音频视频自动播放解决方案

    1.1、使用背景 公司项目需要用到音频自动播放的功能,首先想到的就是autoplay属性。 想让内容自动播放的最简单方法是将autoplay属性添加到元素,并将autoplay属性设置为 true ,当 autoplay 的属性为 true 时,媒体元素将在发生以下情况后尽快自动开始播放: 页面允许使用自动播放

    2023年04月14日
    浏览(50)
  • 解决浏览器无法自动播放音频的问题

    项目场景:要求根据后台返回数据做一个语音提示功能 浏览器报Uncaught (in promise) DOMException: play() failed because the user didn’t interact with the document first. 由于浏览器为了避免自动播放音频打扰用户,因此浏览器做出了限制,只有用户与浏览器交互,如点击事件等等,才会播放音频

    2024年02月12日
    浏览(51)
  • python音频播放问题解决方法

    只是为了验证问题存在,所以就提供了一个获取音频的方法,就是白嫖了。 根据有道翻译的发音获取到地址: https://dict.youdao.com/dictvoice?le=autoaudio=大家好 播放音频通过两种方式,分别通过 playsound 和 pyaudio 两种库,具体使用哪个看个人爱好,两个在使用过程中都遇到过一点小

    2023年04月08日
    浏览(46)
  • phpyun 7.0补丁升级后由于缓存极致bug造成“网络招聘会”栏目不能显示,给小程序上架审核造成影响解决方法如下

    最近Phpyun系统直接从6.44升级到了v7.0跨度非常大,以前都是0.1的标准升级现在直接跨度这么大升级内容很多,我看了下后台UI都改了 体验确实好了很多,老用户建议升级下,这次升级小程序不用重新上架,完美对接,但是有一个问题却出现了那就是升级后\\\"网络招聘会\\\"栏目不显

    2024年01月23日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包