如何正确清理音色.js
How to Correctly Clean Up timbre.js
我通过将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()?)中的所有项目,但将其应用于我的停止函数也不能提供令人满意的结果。有人知道暂停和重新启动这个脚本片段的正确方法吗?
为了启动和停止序列,您需要将最后一个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()用于振荡器或鼓,start()/stop()用于音程。
相关文章:
- 如何在Node.js中正确构造类
- 表单未在角度 js 中正确发布
- 如何在 JS 中正确解析日期
- React.js+Flux-正确初始化存储中的数据对象
- 如何使用odatarsources.JS库正确解析AngularJS应用程序中的JS promise
- 这是使用承诺与 Sequelize.js的正确方法吗?
- NW.js未正确清除缓存
- 在 Vue 中具有内容分发的表.js未正确呈现
- 我无法获得 backbone.localstorage.js 来正确删除项目
- 如何在 React js 中正确使用 Refs
- 图表.js未正确显示/安装问题
- 时刻JS未正确转换日期
- 骨干网.js并正确重构
- JS无法正确显示加载的页面
- vim,在HTML中缩进CSS和JS的正确方法
- JS - 获取正确的窗口像素大小
- 使用.opopulate()mongodb Node.js的正确方法
- 节点js未正确返回函数的值
- node.js的正确继承
- 使用head.js按正确顺序正确加载脚本和依赖项