java - 在Java中使用AudioClip会使程序严重卡住?

标签 java audio

我没有任何代码要特别显示链接,因为这是一个相当普遍的问题...你看,我制作了一个带有 8 个 AudioClip 变量的小游戏小程序,并且这些变量应该在每次特定时播放用户已采取操作。例如:玩家点击 = 播放射击声音。问题是,当我添加这些 AudioClip 文件时,我的程序就会严重卡住,如果卡住特别严重,就会变得无法播放。

我这样做的简单方法在这里(实际上是从书中)

AudioClip playerShooting;

playerShooting=getAudioClip(getDocumentBase(),"PlayerShooting.wav");

然后,每当用户单击时,我就会使用以下内容:

playerShooting.play(): 

在添加这些 wav 文件之前,我的程序运行顺利。它们甚至没有那么长。我在这里哪里出错了,如何消除随机卡住?

编辑:

这是我正在运行的代码:

public void mouseClicked(MouseEvent e)
                {
                    if(playerAlive)
                    {
                        timeShotsAfter=System.currentTimeMillis();

                        if((timeShotsAfter-timeShotsBefore)>=100)
                        {
                            if(shotIndex<10)
                            {
                                playerShooting(); //Here is where I call the function
                                shotFiredX[shotIndex]=currentX;
                                shotFiredY[shotIndex]=currentY;
                                shotSize[shotIndex]=20;
                            }

                            if(shotIndex<10)
                                shotIndex++;
                            else
                                shotIndex=0;

                            timeShotsBefore=System.currentTimeMillis();
                        }
                        else{}

                        toggleShooting=false;
                    }
                }

这是函数:

public void playerShooting()
        {
            new Thread(
            new Runnable() {
                public void run() {
                    try {
                        playerShooting.play();
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            }).start();
        }

最佳答案

不久前我也遇到了同样的问题。为了解决我的问题,我所做的就是更新到 JDK 8。在以前的 JDK 版本中,音频文件似乎是事后才想到的,并且可能存在错误。如果您仍然遇到问题,JDK 8 可以播放比 wav 小得多的 mp3 文件(您可能想尝试一下)。确保在剪辑完成后使用 sound.stop(),因为这可能会释放一些内存。

关于java - 在Java中使用AudioClip会使程序严重卡住?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23678157/

相关文章:

javascript - AudioBufferSourceNode.start()不起作用,或至少激活但不产生任何声音,我在做错什么吗?

java - Android 中的 MVVM 架构使用 Volley

java - 当我需要 DocumentBuilder 时使用 SAX 解析器

java - 从保存的字节流中找出PCM属性

ios - 实时音频对话 iOS

asp.net-mvc-3 - byte []到ASP.NET MVC网站中的音频

java - 同一 shell 上的表格和工具栏

java - hibernate 查询中的固定字段

java - Jackson json 双向对象引用

javascript - 带有 Web Audio API 的 HTML5 音频 - 在 Firefox 中不工作