gpt4 book ai didi

javascript - iOS Safari 上的 webkitAudioContext createMediaElementSource 无法正常工作

转载 作者:技术小花猫 更新时间:2023-10-29 10:54:18 26 4
gpt4 key购买 nike

我想在 iPhone 上进行现场声音分析。为此我使用webkitAudioContext 分析器。

var ctx = new (window.AudioContext || window.webkitAudioContext);
var audioGoodmorning = new Audio('assets/sounds/greeting.m4a');
var audioSrc = ctx.createMediaElementSource(audioGoodmorning);
var analyser = ctx.createAnalyser();

analyser.fftSize = 32;
audioSrc.connect(analyser);
audioSrc.connect(ctx.destination);
var frequencyData = new Uint8Array(analyser.fftSize);

analyser.getByteFrequencyData(frequencyData);

这在 Mac 上的 Chrome 中运行良好。它也适用于 Safari,当将网站添加到主屏幕时,使用

<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-title" content="CHAR">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport">

如果不将站点添加到主屏幕,它就无法在 Safari 上运行。使用嵌入 iOS wkwebview 的站点时,它不起作用。这就是我想要实现的目标。不工作时,frequencyData 数组全为零。

有人遇到过这种问题吗?

提前致谢

最佳答案

检查这个 fiddle :

https://jsfiddle.net/4b2dvhqy/1/

var audio = new Audio();
audio.loop = true;
audio.autoplay = true;
audio.crossOrigin = "anonymous";

audio.addEventListener('error', function(e) {
console.log(e);
});
audio.src = "https://greggman.github.io/doodles/sounds/DOCTOR VOX - Level Up.mp3";
audio.play();
audio.controls = true;

document.getElementById("wrapper").append(audio);

audio.addEventListener('canplay', function() {
var audioSourceNode = audioContext.createMediaElementSource(audio);

audioSourceNode.connect(analyser);
analyser.connect(audioContext.destination);
});

它在 Safari 上运行良好,因为音频内容是在用户点击事件下处理的。

没有“用户点击事件”,它仅在 Chrome 或 Safari“本地主机”上运行良好。

另外,这个其他的 Fiddle 可以很好地处理 HTML 标签音频:

https://jsfiddle.net/cbua1pkn/1/

这里的技巧是在用户点击播放按钮时初始化 audioContext! (所以你在用户事件上下文中)。

关于javascript - iOS Safari 上的 webkitAudioContext createMediaElementSource 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36430194/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com