【发布时间】:2016-11-21 04:07:36
【问题描述】:
我正在使用 Processing3 编写游戏,但声音文件有问题。我在draw() 上播放song.play(); 并且程序的每一帧都一遍又一遍地播放,有人知道如何让它只播放一次背景音乐吗?
【问题讨论】:
标签: java audio logic processing
我正在使用 Processing3 编写游戏,但声音文件有问题。我在draw() 上播放song.play(); 并且程序的每一帧都一遍又一遍地播放,有人知道如何让它只播放一次背景音乐吗?
【问题讨论】:
标签: java audio logic processing
您还没有告诉我们您使用的是什么库 - 是 Minim 吗?
如果是这样,请查看 the Minim documentation 以获取您可能会发现有用的类和函数的列表。
例如,AudioPlayer 类有一个 isPlaying() 函数,您可以使用它在播放之前检查歌曲是否正在播放。
您可能还想重新安排您的程序,以便歌曲只触发一次,可以通过setup() 函数,或使用frameCount 变量,或响应用户输入。
【讨论】:
frameCount 的建议正是您对x 变量所做的事情。创建另一个变量没有意义。但实际上,您应该只播放来自 setup() 的声音,因为这正是该功能的用途。
我已经找到了一种让它发挥作用的方法。我创建了一个变量:int x;并写了
void draw()
{
x++;
If(x == 1)
song.play();
}
这样歌曲只会在x 为 1 时播放,而随着 x 每一帧都在增长,它不会再次播放。
【讨论】: