首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何正确清理timbre.js

如何正确清理timbre.js
EN

Stack Overflow用户
提问于 2015-12-23 07:49:54
回答 1查看 259关注 0票数 2

通过将Timbre.js与AudioContextMonkeyPatch结合使用,我在iOS 9.2上成功地运行了它,并且我正在尝试使用此处提供的代码的一个略微修改的版本:http://mohayonao.github.io/timbre.js/interval.html。代码(用于保存查找)是:

代码语言:javascript
复制
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函数中应用此方法也不能提供令人满意的结果。有人知道暂停和重新启动这个脚本片段的正确方法吗?

EN

回答 1

Stack Overflow用户

发布于 2016-02-08 04:33:48

为了启动和停止序列,您需要将最后一个T函数赋给一个变量。然后,您可以随意使用.start()和.stop():

代码语言:javascript
复制
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()用于音程。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34426416

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档