chrome播放语音时,在chrome 控制台中报 DOMException: The play() request was interrupted by a call to pause(). 的问题.
$(document).ready(function () {
var audioElement = $(
'<audio>' +
' <source src="" />' +
'</audio>');
$('body').append(audioElement);
var a = audioElement[0];
var lastEventTime = null;
var queue = [];
function play() {
//如果队列是空的,则直接返回
if (queue.length == 0)
return;
if (a.readyState == 0 || a.ended) {
var event = queue.pop();
a.src = "xxxxxxxxxxxx";//这儿报DOMException: The play() request was interrupted by a call to pause(). 的问题.
a.play();
}
}
后改为:
$(document).ready(function () {
    var audioElement = $(
    '<audio>' +
    '   <source src="" />' +
    '</audio>');
    $('body').append(audioElement);
    var a = audioElement[0];
    var lastEventTime = null;
    var queue = [];
    function play() {
        //如果队列是空的,则直接返回
        if (queue.length == 0)
            return;
        if (a.readyState == 0 || a.ended) {
            try
            {
                a.pause();
                a.currentTime = 0;
                //解决在chrome 控制台中报 DOMException: The play() request was interrupted by a call to pause(). 的问题.
                //这是第1种方式
                //var nopromise = {
                //    catch: new Function()
                //};
                // (a.play() || nopromise).catch(function () { console.log("a.play catch>"); });;//这种可以
                var event = queue.pop();
                a.src = "xxxx";
                //这是第2种方法
                a.play().catch(function (e) {
                   // console.log("a.play catch>", e);
                });
            }
            catch(e)
            {
                console.log("autoplay.js play()>", e.message);
                console.log("autoplay.js play()>", e.description);
            }
        }
    }
这样就可以解决问题了.
chrome播放语音时,在chrome 控制台中报 DOMException: The play() request was interrupted by a call to pause(). 的问题.的更多相关文章
- Asp.net 不安全端口 解决chrome浏览器访问时提示:ERR_UNSAFE_PORT
		
https://blog.bbzhh.com/index.php/archives/136.html 想在vps做个测试,看看是否25端口屏蔽是否生效,于是起了一个小web服务在25端口做测试,但是使 ...
 - 【vue】chrome已安装Vue Devtools在控制台却无显示
		
chrome已安装Vue Devtools在控制台却无显示的解决: 在点亮Vue Devtools图标后,控制台没有vue解读显示. 原因:脚手架配置NODE_ENV直接定义为了production版 ...
 - Chrome 上传时打开对话框非常慢
		
Chrome 上传时打开对话框非常慢 先说解决方法,将 Chrome 中这个选项关闭,打开会飞快. 如果只是图片之类是不会的,但是有 zip apk 之类的就会慢. 主要原因还是 Chrome 太安全 ...
 - 解决chrome插件安装时出现的“程序包无效”问题信息:程序包无效。
		
https://blog.csdn.net/bluexuemei/article/details/35213117 2014-06-27 09:00:51 bluexuemei 阅读数 14374更多 ...
 - IE,Google Chrome等浏览器,调试模式在控制台可以手动调用页面的方法来调试
		
IE,Google Chrome等浏览器,调试模式在控制台可以手动调用页面的方法来调试,这种方式也可以进断点.
 - 解决Chrome插件安装时出现的“程序包无效”问题
		
问题原因,新版的插件头部文件的修改,导致旧版的插件包无法使用,解决方式:解压. 1.把下载后的.crx扩展名的离线Chrome插件的文件扩展名改成.zip或者.rar(如果看不到Chrome插件的扩展 ...
 - Chrome扩展开发之二——Chrome扩展中脚本的运行机制和通信方式
		
目录: 0.Chrome扩展开发(Gmail附件管理助手)系列之〇——概述 1.Chrome扩展开发之一——Chrome扩展的文件结构 2.Chrome扩展开发之二——Chrome扩展中脚本的运行机制 ...
 - 手把手教你开发chrome扩展一:开发Chrome Extenstion其实很简单
		
手把手教你开发chrome扩展一:开发Chrome Extenstion其实很简单 手把手教你开发chrome扩展一:开发Chrome Extenstion其实很简单 手把手教你开发Chrome扩 ...
 - chrome/microsoft/brave等浏览器离线下载crx并安装(解决download interrupted)
		
重要网站 离线下载crx 问题描述 使用chrome/microsoft edge/ brave 下载chrome webstroe插件时,提示: download interrupted. 解决方案 ...
 
随机推荐
- JS的replace()的应用
			
替换字符串中的空格 /\s/ig 例如: var pro="ssss ssss sss ddd ss" var protext = pro.replace(/\s/ig,&qu ...
 - python中的generator, iterator, iterabel
			
先来看看如果遇到一个对象,如何判断其是否是这三种类型: from types import GeneratorType from collectiuons import Iterable, Itera ...
 - Python 函数的使用 外加引入文件
			
#coding=utf-8 #!user/bin/python import sys import test2 def functionsss(name,sex,age=25): print name ...
 - Windows 2008 server R2安装.NET Framework4时提示“灾难性故障”解决
			
在安装行环境.NET Framework 4时无法安装,提示“灾难性故障”.服务器的操作系统是windows server 2008 R2. 查看系统日志时显示“无法安装 Windows 更新 &q ...
 - MVC使用Exception过滤器自定义处理Action的的异常
			
1.继承FilterAttribute ,IExceptionFilter自定义处理 /// <summary> /// 登录错误自定义处理 /// </summary> pu ...
 - protocol buffer使用简介
			
之前在工作中用到了protocol buffer(此处简称PB)(主要对数据进行序列化与反序列化,方便网络传输中的编解码),之后发现这是一个好东西,在此稍微记录下该工具如何使用,方便以后查阅 官网地址 ...
 - Hibernate 持久化对象的状态
			
持久化对象有3种状态:1.持久化状态 2.临时状态 3.游离状态 Session 的特定方法能使对象从一个状态转换到另一个状态临时对象(transient)• 在使用代理主键 ...
 - ajax调试兼容性
			
<script type="text/javascript"> if(typeof ActiveXObject!= 'undefined'){ var x = new ...
 - [转]Traits 编程技法+模板偏特化+template参数推导+内嵌型别编程技巧
			
STL中,traits编程技法得到了很大的应用,了解这个,才能一窥STL奥妙所在. 先将自己所理解的记录如下: Traits技术可以用来获得一个 类型 的相关信息的. 首先假如有以下一个泛型的迭代器类 ...
 - 字符串转换成JSON(js)
			
JSON.parse('{"site":"zlog"}'); 使用JSON.parse需严格遵守JSON规范, 属性都需用双引号引起来, 一定是双引号!! 相反 ...