在iOS 7.1上使用Web Audio API播放音频时,我一直听到嗡嗡声/嘈杂声/失真声。 这里有失真的例子,应该是正常的像这样。
使用HTML5音频时,同一文件可以正常播放。在桌面上(Firefox、Chrome、Safari)都能正常工作。
编辑:
Howler.js不是问题所在。使用纯JS仍然存在问题,如下所示:
使用HTML5音频时,同一文件可以正常播放。在桌面上(Firefox、Chrome、Safari)都能正常工作。
编辑:
- iOS模拟器版本iOS 7.1、8.1和8.2中的音频失真。嗡鸣声经常在我甚至没有播放任何东西之前就开始了。
- 物理iPhone运行iOS 7.1,在Chrome和Safari中音频失真。
- 在物理iPhone运行iOS 8.1的情况下,在Chrome和Safari中音频正常。
Howler.js不是问题所在。使用纯JS仍然存在问题,如下所示:
var context;
var sound;
var extension = '.' + ( new Audio().canPlayType( 'audio/ogg' ) !== '' ? 'ogg' : 'mp3');
/** Test for WebAudio API support **/
try {
// still needed for Safari
window.AudioContext = window.AudioContext || window.webkitAudioContext;
// create an AudioContext
context = new AudioContext();
} catch(e) {
// API not supported
throw new Error( 'Web Audio API not supported.' );
}
function loadSound( url ) {
var request = new XMLHttpRequest();
request.open( 'GET', url, true );
request.responseType = 'arraybuffer';
request.onload = function() {
// request.response is encoded... so decode it now
context.decodeAudioData( request.response, function( buffer ) {
sound = buffer;
}, function( err ) {
throw new Error( err );
});
}
request.send();
}
function playSound(buffer) {
var source = context.createBufferSource();
source.buffer = buffer;
source.connect(context.destination);
source.start(0);
}
loadSound( '/tests/Assets/Audio/En-us-hello' + extension );
$(document).ready(function(){
$( '#clickme' ).click( function( event ) {
playSound(sound);
});
}); /* END .ready() */
这段代码的在线版本可以在此处找到:Web Audio API - Hello world
Google没有任何关于iOS 7.1上出现音频失真问题的结果。
是否有其他人遇到过这个问题?我应该向苹果提交错误报告吗?