【问题标题】:How to use play() inside Draw() in Processing 3?如何在处理 3 中的 Draw() 中使用 play()?
【发布时间】:2016-11-21 04:07:36
【问题描述】:

我正在使用 Processing3 编写游戏,但声音文件有问题。我在draw() 上播放song.play(); 并且程序的每一帧都一遍又一遍地播放,有人知道如何让它只播放一次背景音乐吗?

【问题讨论】:

    标签: java audio logic processing


    【解决方案1】:

    您还没有告诉我们您使用的是什么库 - 是 Minim 吗?

    如果是这样,请查看 the Minim documentation 以获取您可能会发现有用的类和函数的列表。

    例如,AudioPlayer 类有一个 isPlaying() 函数,您可以使用它在播放之前检查歌曲是否正在播放。

    您可能还想重新安排您的程序,以便歌曲只触发一次,可以通过setup() 函数,或使用frameCount 变量,或响应用户输入。

    【讨论】:

    • 我没有使用 Minim,我使用的是来自 Processing 3 的库声音。
    • @CHAP 然后您可以查看 Sound 库的文档以了解类似的功能。或者关于使用frameCount 的建议正是您对x 变量所做的事情。创建另一个变量没有意义。但实际上,您应该只播放来自 setup() 的声音,因为这正是该功能的用途。
    【解决方案2】:

    我已经找到了一种让它发挥作用的方法。我创建了一个变量:int x;并写了

    void draw()
    {
       x++;
    
       If(x == 1)
       song.play();
    }
    

    这样歌曲只会在x 为 1 时播放,而随着 x 每一帧都在增长,它不会再次播放。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-29
      相关资源
      最近更新 更多