Processing 坚持认为 pause() 不是一个函数,而实际上它是

Processing insists pause() is not a function, when it very much is

艾特,[第一张贴在这里,请不要bash] 所以,我正在使用声音库,我当然记得要导入它,并且工作得很好,事实证明我使用的所有其他功能都按预期工作并且在编辑器和执行中都没有出现问题。 当然,除了这个 pause() 函数的小错误,我按照下面使用与所有其他函数没有不同的语法编写它,只是为了发现 Processing 并不是很热衷于接受它的存在。 问题显示同时使用 3.3.6 和 3.5。

哦,还有,显然是 isPlaying() returns 一个整数,这是怎么回事?

如果正如我所怀疑的那样,下面的单行代码不足以与信息结合以深入了解它,这里是代码的 Dropbox link(因为它使用一堆文件)所以你可以自己测试。 如果你尝试 运行 它有点不起作用,因为它在尝试加载所有歌曲时搞砸了(在最后一行设置中),是的我也有点需要一些帮助.. . 如果你只加载第一个,工作正常!

https://www.dropbox.com/sh/di7mwit0w2l4513/AABipGDAdoKx277f8Hg_ZfhDa?dl=0

(请不要指望清晰、评论广泛的编码。在我了解到那是一回事之前,我就开始以这种方式工作。深表歉意。当然,您可以问任何让您感到困惑的事情)

我试过什么,呃,写得好吗??? 我使用了 .play()、.stop() 和 volume,它们都按照说明工作正常。

import processing.sound.*;
SoundFile[] songs= new SoundFile[1];
void setup(){
    songs[0]=new SoundFile(this,"Small Bump.mp3");
    songs[0].play();
}
void draw(){
}
void keyPressed(){
if (songs[0].isPlaying()==1)songs[0].pause();
}

当我将您的代码复制到我的 Processing 编辑器中时,出现了几个错误:

songs[0]="Small Bump.mp3";

sounds 数组包含 SoundFile 的实例,但您试图在此处存储 String 值。也许您正在寻找 SoundFile 构造函数?

if (songs[0].isPlaying()==1)

isPlaying() 函数 returns 一个 boolean 值,但您将其与 int 值进行比较。

songs[i].pause();

您尚未在任何地方声明此 i 变量。可能意味着这是 0.

如果我修复了所有这些错误,那么您的代码可以正常编译。

您可能想查看声音库的参考资料 here

我安装的声音库是 1.3.2 或类似的版本。 我读过的所有参考资料都是针对 2.0+ 的。 通过 "add library" 菜单更新后,一切都解决了。