不允许启动 AudioContext。 AngularJS录音机Chrome71
The AudioContext was not allowed to start. AngularJS Recorder Chrome 71
过去 4 年我一直在使用 AngularAudioRecorder (AngularJS),在最近的 Chrome 更新中我遇到了以下错误:
The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page.
init @ angular-audio-recorder.js: 861
代码:
getPermission: function () {
navigator.getUserMedia({
"audio": true
}, html5HandlerConfig.gotStream, html5HandlerConfig.failStream);
},
init: function () {
service.isHtml5 = true;
var AudioContext = window.AudioContext || window.webkitAudioContext;
if (AudioContext && !html5AudioProps.audioContext) {
html5AudioProps.audioContext = new AudioContext();
}
if (localStorage.getItem("permission") !== null) {
//to get permission from browser cache for returning user
html5HandlerConfig.getPermission();
}
}
};
请在此处找到完整代码:Angular Audio Recorder
感谢您提供的任何帮助
我解决了问题。最后恢复暂停的 AudioContext 与:
html5AudioProps.audioContext.resume().then(() => {
var audioContext = html5AudioProps.audioContext;
})
在开始录制的函数中。
当用户按下任意键或触摸任意按钮时执行此操作
if(audio_context.state !== 'running') {
audio_context.resume();
}
这个问题没什么,只适用于Angular;它更通用,并且与现代浏览器禁用自动播放声音(直到用户交互'enough')这样一个事实有关,这样您就不会被刚打开的某些网页的声音所困扰。
看到这个老问题here。
我收到了完全相同的 'not allowed to start' 消息,但我没有使用 Angular;我只是想让 JavaScript 在 'enough' 用户交互之前(以编程方式)播放声音。我所做的修复是注意 ... = new AudioContext()
仅在用户按下按钮或与(本机)滑块交互后才执行。对上述旧问题的公认答案表明了基本相同的策略。
很高兴看到您已经解决了问题。可能(注意:未测试)另一种解决方案是延迟加载 and/or 记录器代码的初始化,直到用户按下某个按钮左右。
我解决了我的问题:
setTimeout(() => {
context.close();
}, timenotification);
过去 4 年我一直在使用 AngularAudioRecorder (AngularJS),在最近的 Chrome 更新中我遇到了以下错误:
The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. init @ angular-audio-recorder.js: 861
代码:
getPermission: function () {
navigator.getUserMedia({
"audio": true
}, html5HandlerConfig.gotStream, html5HandlerConfig.failStream);
},
init: function () {
service.isHtml5 = true;
var AudioContext = window.AudioContext || window.webkitAudioContext;
if (AudioContext && !html5AudioProps.audioContext) {
html5AudioProps.audioContext = new AudioContext();
}
if (localStorage.getItem("permission") !== null) {
//to get permission from browser cache for returning user
html5HandlerConfig.getPermission();
}
}
};
请在此处找到完整代码:Angular Audio Recorder
感谢您提供的任何帮助
我解决了问题。最后恢复暂停的 AudioContext 与:
html5AudioProps.audioContext.resume().then(() => {
var audioContext = html5AudioProps.audioContext;
})
在开始录制的函数中。
当用户按下任意键或触摸任意按钮时执行此操作
if(audio_context.state !== 'running') {
audio_context.resume();
}
这个问题没什么,只适用于Angular;它更通用,并且与现代浏览器禁用自动播放声音(直到用户交互'enough')这样一个事实有关,这样您就不会被刚打开的某些网页的声音所困扰。
看到这个老问题here。
我收到了完全相同的 'not allowed to start' 消息,但我没有使用 Angular;我只是想让 JavaScript 在 'enough' 用户交互之前(以编程方式)播放声音。我所做的修复是注意 ... = new AudioContext()
仅在用户按下按钮或与(本机)滑块交互后才执行。对上述旧问题的公认答案表明了基本相同的策略。
很高兴看到您已经解决了问题。可能(注意:未测试)另一种解决方案是延迟加载 and/or 记录器代码的初始化,直到用户按下某个按钮左右。
我解决了我的问题:
setTimeout(() => {
context.close();
}, timenotification);