[英]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解決方法是否允許你暫停和恢復播放?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.