无论是Safari或Firefox能够处理从音频数据MediaElementSource
使用Web音频API。
var audioContext, audioProcess, audioSource, result = document.createElement('h3'), output = document.createElement('span'), mp3 = '//www.jonathancoulton.com/wp-content/uploads/encodes/Smoking_Monkey/mp3/09_First_of_May_mp3_3a69021.mp3', ogg = '//upload.wikimedia.org/wikipedia/en/4/45/ACDC_-_Back_In_Black-sample.ogg', gotData = false, data, audio = new Audio(); function connect() { audioContext = window.AudioContext ? new AudioContext() : new webkitAudioContext(), audioSource = audioContext.createMediaElementSource( audio ), audioScript = audioContext.createScriptProcessor( 2048 ); audioSource.connect( audioScript ); audioSource.connect( audioContext.destination ); audioScript.connect( audioContext.destination ); audioScript.addEventListener('audioprocess', function(e){ if ((data = e.inputBuffer.getChannelData(0)[0]*3)) { output.innerHTML = Math.abs(data).toFixed(3); if (!gotData) gotData = true; } }, false); } (function setup(){ audio.volume = 1/3; audio.controls = true; audio.autoplay = true; audio.src = audio.canPlayType('audio/mpeg') ? mp3 : ogg; audio.addEventListener('canplay', connect); result.innerHTML = 'Channel Data: '; output.innerHTML = '0.000'; document.body.appendChild(result).appendChild(output); document.body.appendChild(audio); })();
是否有在不久的将来,以修补这个什么计划吗? 或者是有一些变通,将仍然提供了音频控制提供给用户?
对于苹果而言,这东西可以固定在,WebKit Nightlies版,否则我们将不得不等待,直到Safari浏览器8.0版来获得HTML5 <audio>
与网络音频API很好地玩? 因为至少6.0版本网络音频API已在Safari中存在,我最初发布长这个问题的Safari浏览器7.0发布之前。 有没有这个是不是已经固定一个原因吗? 将它永远是固定的?
对于Mozilla,我知道你仍然在从旧音频数据API切换的过程,但是这是一个已知的问题与您的网络音频实现,并且它去的Firefox的下一个版本之前能解决吗?