gpt4 book ai didi

java - 音频 - 剪辑不会停止

转载 作者:行者123 更新时间:2023-12-01 12:44:08 28 4
gpt4 key购买 nike

我有一个函数,每次用户单击时都会调用该函数,如果屏幕发生变化,它将开始播放音乐。现在唯一的问题是它不会停止。我发现这是因为clip = AudioSystem.getClip();不会返回当前播放的剪辑,它每次都会返回一个随机位置。如何确保该剪辑获取当前播放剪辑的值以便我可以停止它?

“StartBGMusic”功能

public void startBGMusic() throws LineUnavailableException, IOException
{
clip = AudioSystem.getClip();
System.out.println(clip);
try
{
if(SCREEN_CHECK != Screen)
{
clip.stop();

clip.close();

if(Screen != 14 && Screen != 19 && Screen != 16 && Screen != 15 && Screen != 17)
{
clip.open(AudioSystem.getAudioInputStream(getClass().getResource("UpbeatFunk.wav")));
clip.loop(99999);
}
else
{
clip.open(AudioSystem.getAudioInputStream(getClass().getResource("Background Music.mid")));
clip.loop(99999);
}
}

SCREEN_CHECK = Screen;
}catch (Exception e)
{
e.printStackTrace(System.out);
}
}

最佳答案

According to oracle documentation, getClip() 不返回当前播放的声音,而是返回一个可用于播放音频文件的剪辑对象。

您需要传递对用于启动音频文件的剪辑的引用。这可以通过返回它/将其作为参数传递或使用全局变量/getter 方法来完成

关于java - 音频 - 剪辑不会停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24846527/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com