通过将Timbre.js与AudioContextMonkeyPatch结合使用,我在iOS 9.2上成功地运行了它,并且我正在尝试使用此处提供的代码的一个略微修改的版本:http://mohayonao.github.io/timbre.js/interval.html。代码(用于保存查找)是:
var freqs = T(function(count) {
return [220, 440, 660, 880][count % 4];
});
var osc = T("sin", {freq:freqs, mul:0.5});
var env = T("perc", {a:50, r:500}, osc).bang();
var interval = T("param", {value:500}).linTo(50, "30sec");
T("interval", {interval:interval}, freqs, env).start();
env.play();我试图弄清楚的是如何启动,然后停止,然后重新启动声音。我试着看看开发人员的示例“暂停”按钮是如何工作的,但我似乎找不到那个代码示例。我做一些基本的事情,比如"T().stop();env.pause();“,然后是"env.play();”(在单独的onClick事件中),最后在第二个play事件上有多个信号。真让人沮丧。文档建议'removeAll‘将删除加载到Timbre() (或T()?)中的所有项,但在我的stop函数中应用此方法也不能提供令人满意的结果。有人知道暂停和重新启动这个脚本片段的正确方法吗?
发布于 2016-02-08 04:33:48
为了启动和停止序列,您需要将最后一个T函数赋给一个变量。然后,您可以随意使用.start()和.stop():
code....
var interval = T("param", {value:500}).linTo(50, "30sec");
var audioSequence = T("interval", {interval:interval}, freqs, env);
env.play();
audioSequence.start(); // Start the Sequence
interval.stop(); // Stop the interval
audioSequence.stop(); // Stop the Sequence
interval.start(); // Restart the Interval
audioSequence.start(); // Restart the Sequence一开始有点混乱,因为play()用于振荡器或鼓,而/pause()/stop()用于音程。
https://stackoverflow.com/questions/34426416
复制相似问题