繁体   English   中英

使用简单的图形播放iOS网络音频时的噼啪声和噪音

[英]crackles and noises when playing iOS web audio with simple graph

使用createMediaElementSource()将音频元素与Web音频图形连接时,我注意到在iOS设备(iPhone,iPad)上播放时偶尔会出现噼啪声。 当使用运行相同代码的(便宜的)Android设备或macOS桌面时,我从未体验过这些问题。

播放开始后很快就会出现噪音并在整个文件中持续存在。 通常,当播放开始后不久没有听觉问题时,它们根本不会出现。

可以在这里找到演示,但请注意,我可能需要重试几次,直到出现问题https://jsfiddle.net/st___h/36w7vxn2/8/show

完整代码: https//jsfiddle.net/st___h/36w7vxn2/8/

记录iPad输出,说明问题可以在这里找到: https//st-h.github.io/test/ios_playback_noise.mp3

这是用于设置图形的剪切:

var context = new(window.AudioContext || window.webkitAudioContext)();
var gainNode = context.createGain();

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

audio.addEventListener('error', function(e) {
  alert(e);
});
var source = context.createMediaElementSource(audio);
source.connect(gainNode);
gainNode.connect(context.destination);

audio.src = "https://st-h.github.io/test/latencies.mp3";
audio.play();
gainNode.gain.setValueAtTime(0.9, gainNode.context.currentTime);

如果我只是将源连接到目的地而两者之间没有任何节点,则问题不太可能出现。 使用像分析仪这样的不同节点不会产生任何显着差异。

当打印出audioContext的sampleRate时,我注意到可能会显示44100或48000。 但是,我没有发现出现的问题与使用的采样率之间存在任何关联。 (检查是因为过去有报告称这可能是一个问题,噪音类型可能与错误的采样率有关)

使用iPhone 6s和iPad Pro(2017)测试。 有趣的是,这也显示在iOS上使用Chrome浏览器。 有什么想法可能会出错吗?

更新

添加画布和分析器节点似乎增加了出现问题的可能性: https//jsfiddle.net/st___h/36w7vxn2/27/show

我还向苹果虫记者提交了一个错误

19年3月29日

可能这可能是webkit中的一个错误: https //bugs.webkit.org/show_bug.cgi id = 196293 https://bugs.webkit.org/show_bug.cgi?id=190552至少它看起来我不是唯一面临类似问题的人。

一个月后,错误报告仍未收到任何回复。 发布到apple dev论坛的帖子也没有通知。

这让我疯狂多年。 Steve Hummingbird,你在这里提到的BufferSource解决方法是否允许你暂停和恢复播放?

https://forums.developer.apple.com/thread/114772

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM