我正在做一个游戏,里面有背景音乐。我想添加一个启动和停止音乐的静音按钮,但我不知道怎么做。创建音乐的方法是:
public static void backgroundMusic() {
try {
AudioInputStream audio = AudioSystem.getAudioInputStream(new File("SoundFile.wav"));
Clip clip = AudioSystem.getClip();
clip.open(audio);
clip.start();
}
catch(UnsupportedAudioFileException uae) {
System.out.println(uae);
}
catch(IOException ioe) {
System.out.println(ioe);
}
catch(LineUnavailableException lua) {
System.out.println(lua);
}
}
我想做的是在按钮的动作处理程序中,我想添加一个静音按钮,如果用户愿意,它可以启动和停止音频。所以它应该是这样的:如果(e.getSource()==muteButton){//启动和停止音乐}
我该怎么做?谢谢你的帮助!
它与声音无关,它与能够访问Clip
引用有关。因为您已经创建了对Clip
的本地引用,所以其他任何东西都无法访问引用以更改状态…
您需要更改本地引用,使其成为类级引用,允许其他方法与之交互。。。
例如
protected static Clip clip;
public static void backgroundMusic() {
try {
if (clip == null) {
AudioInputStream audio = AudioSystem.getAudioInputStream(new File("SoundFile.wav"));
clip = AudioSystem.getClip();
clip.open(audio);
}
if (!clip.isRunning()) {
clip.start();
}
}
catch(UnsupportedAudioFileException uae) {
System.out.println(uae);
}
catch(IOException ioe) {
System.out.println(ioe);
}
catch(LineUnavailableException lua) {
System.out.println(lua);
}
}
public static void stopBackgroundMusic() {
if (clip != null) {
clip.stop();
}
}
PS-我从来没有真正处理过音频API,所以您可能需要进行一些其他调整,但这是您所追求的基本概念……
当开始播放时,会抛出以下断言: 进入后台状态后,抛出以下断言,音频挂起: 这在iOS 12中是不发生的,当它在后台时,音频会正常播放。
在我的一个活动中,有一个使用mediaPlayer播放音乐的按钮。它还可以选择在后台播放音乐,或者在活动结束时停止。 我用这个代码。 这很好用。现在的问题是,当用户返回活动并按下播放按钮时,它会启动一个新的mediaPlayer并播放新的音乐。当新音乐开始播放时,我想在后台停止播放以前的音乐。 这是我的代码 以及MediaPlayer声明 在创建之前
我有一个关于和应用程序间音频的问题。让我解释一下情况: 我有一个像spotify这样的应用程序,它可以在背景中播放音乐 我有一个应用程序可以打开webview()并播放像youtube一样的视频或仅播放声音。 当视频或声音在webview中播放时,背景音乐也会停止
所以这是我需要解决的大事。我有Visual C#应用程序。在这个应用程序中,用户输入数据并单击Execute。当他们点击执行时,核心方法开始在新线程中,在那个线程和方法是一个循环。不断地使用方法调用器,我向UserForm发送更新,循环实际上在做什么。例如,像这样,我在每个cicle中更新progressBar。