首页 文章

怎么播放很多音效?

提问于
浏览
1

我正在尝试制作一个节奏游戏,当玩家在正确的时间点击音符时,它应该播放一个响亮的声音,并且有时会有很多快速音符 .

我尝试了三种方法,但每个方法都有问题 .

First: 我试图使用_12433899_中的 AudioClip 类,因为我用它来播放音乐......它有效,但有时它播放声音太晚了,播放时太多,它停止播放声音并在应用程序崩溃后崩溃几秒钟 .

Second: 之后,我从 java.applet 找到 AudioClip ,通过 Applet.newAudioClip(URL url) 创建它,它可以正常工作,但有时它不会播放 .

Third: 我试图使用 Clip ,它与applet的效果相同 AudioClip

2 回答

  • 3

    尝试使用JavaFX AudioClip class in Java 8并查看是否解决了您报告的JavaFX AudioClip播放问题(应该) .

    Regarding JavaFX AudioClip Crashes

    Java 7中的JavaFX存在问题:RT-35851 JVM crash playing AudioClip .

    在对RT-35851的评论中,开发人员说:

    在我的Windows 7机器上,我可以重现JDK 7u45(FX 2.2.45)和7u51(FX 2.2.51)上的错误 . 我得到一个没有堆栈跟踪的间歇性崩溃 . 发生这种情况时,JVM会重新启动 . . . 我让应用程序在JDK 8上运行了近2个小时(70,000次迭代),没有任何问题 . 所以这个bug特定于JDK 7 / FX 2 .

    Regarding JavaFX AudioClip Playback Timing

    有时它播放声音太晚了

    我也经历过JavaFX AudioClip的这个问题,但这只是我第一次播放AudioClip . 作为解决方法,我所做的是在应用程序启动时为每个剪辑媒体文件播放剪辑,音量设置为零,然后在我真正需要时尝试播放它们之前将剪辑音量设置恢复正常 . 在我这样做之后,剪辑似乎立即播放 . 不确定Java 8是否仍然需要这种解决方法 .

    JavaFX问题跟踪器中还存在一个问题:RT-24912 delayed audio playback on AudioClip . 对于"Lombard",RT-24912被标记为固定,这是Java 8的JavaFX开发的代号,因此该问题的修复应该在Java 8中 .

    在对RT-24912的评论中,开发人员说:

    我找到了这个的根本原因并且正在测试修复 . 到目前为止,我无法重现我遇到的延迟或崩溃 . . . RT-25063的修复程序(在Windows 7和Mac OS X上测试)不再可重现,所以我正在解决这个问题 .

    Regarding the Number of Simultaneous Playable JavaFX AudioClips

    在RT-24912的评论中,开发人员注意到:

    每个底层实现只能处理有限数量的同时播放剪辑(实际数字未定义),并且优先级用于确定在超过该数量时将播放哪些剪辑 . 如果你没有达到那个限制,那么它没有任何效果 .


    如果您还有JavaFX AudioClips的其他问题,请创建一个可重复的小代码示例,然后将代码示例和环境描述的错误记录到https://javafx-jira.kenai.com .

  • 0

    这可能有所帮助

    http://docs.oracle.com/javase/tutorial/sound/

    “虽然采样音频是声音本身的直接表现,但MIDI数据可以被视为创造声音的配方,特别是音乐声音 . ”

相关问题