Cab*_*ibo 5 javascript audio html5 webkit web-audio-api
所以我在尝试从标签创建Web音频源节点时遇到问题.守则看起来像这样:
OBJECT.musicContext= new webkitAudioContext();
OBJECT.audio = new Audio();
OBJECT.audio.src = self.file;
OBJECT.source = OBJECT.musicContext.createMediaElementSource(OBJECT.audio);
var analyser= OBJECT.musicContext.createAnalyser();
analyser.fftSize=1024;
OBJECT.analyser=analyser
OBJECT.gain = self.musicContext.createGain();
OBJECT.gain.gain.value = .01
OBJECT.source.connect(OBJECT.gain)
OBJECT.gain.connect(OBJECT.analyser)
OBJECT.analyser.connect(OBJECT.musicContext.destination)
OBJECT.play = function(){OBJECT.source.play();}
OBJECT.stop = function(){OBJECT.source.stop();}
Run Code Online (Sandbox Code Playgroud)
问题在于最后两行.我似乎无法通过webkit音频上下文播放音频...
如果我做
OBJECT.play = function(){OBJECT.audio.play();}
Run Code Online (Sandbox Code Playgroud)
声音将开始播放,但不会通过音频节点(这是有意义的)
我也试过了
OBJECT.play = function(){OBJECT.source.noteOn(0);}
OBJECT.stop = function(){OBJECT.source.noteOff(0);}
Run Code Online (Sandbox Code Playgroud)
无济于事......
任何帮助或建议都会受到极大的赞赏,并提前感谢您的时间!
艾萨克
编辑:当console.logging OBJECT.source声称有零输入和1输出时.这对于源节点是否正确?
终于明白了,但不知道问题出在哪里...
而不是使用
audio = new Audio();
audio.src = self.file;
Run Code Online (Sandbox Code Playgroud)
并连接这个,我改为使用
audio = document.querySelector('audio');
Run Code Online (Sandbox Code Playgroud)
选择我之前放入页面的元素。我不确定这是否有效,只是因为它给了它更多的加载时间,或者 API 是否有内在的东西
| 归档时间: |
|
| 查看次数: |
2411 次 |
| 最近记录: |