gpt4 book ai didi

Java Clip(Clip.Stop 不起作用)

转载 作者:行者123 更新时间:2023-12-01 09:54:14 24 4
gpt4 key购买 nike

我在 Eclipse 上制作了一个视频游戏,我将制作一首菜单歌曲并停止该歌曲,但 Clip.stop();不工作我不知道为什么请帮助我。菜单歌曲Clip.play();和Clip.loop(Clip.LOOP_CONTINUOUSLY);工作,但只有当我关闭游戏时我才能停止这首歌。

package Audio;

import java.io.File;

import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;

import sun.audio.AudioPlayer;


public class MenuAudio {

public static boolean stopped = false;

public static void Start(){
System.out.println(stopped);
try{
File f = new File("C:\\Games\\Test\\Assets\\sound\\menu\\menuLoop.wav");
Clip clip = AudioSystem.getClip();
AudioInputStream ais = AudioSystem.getAudioInputStream(f);
clip.open(ais);
clip.start();
clip.loop(Clip.LOOP_CONTINUOUSLY);
AudioPlayer.player.stop(ais);
if(stopped == true) // work
{
clip.stop(); //not work
clip.close(); //not work
stopped = false; //work
System.out.println(stopped);//work
}

}catch(Exception exception){System.out.println("WAV FILES NOT FOUND!! ");}

}

}

boolean 值在另一个类中停止返回 true 这段代码

    int test = 0;
//code useless
........
//code useless
MenuAudio.Start(); // play the sound
//code useless
........
//code useless

if(Keyboard.isKeyDown(Keyboard.KEY_LEFT)){ //work
test = 0;
}

if(test == 0 && Keyboard.isKeyDown(Keyboard.KEY_RIGHT)){ //work
MenuAudio.stopped = true;
MenuAudio.Start();
test = 1;
}

这段代码可以工作控制台返回:真的错误的如果我先按左键再按右键。我不知道为什么 Clip.stop();不工作。

(抱歉英语不好)

最佳答案

您的代码中有许多令人困惑的事情。其一,我认为 sun.audio.AudioPlayer 已被弃用。我没有看到它在 Java 7 API 中列出。我很确定它在控制您编写的代码中的 javax.audio.Clip 方面没有任何作用。

这里有关于 sun.audio.AudioPlayer 的更多信息 past StackOverflow question链接。

另一个困惑的来源是你的命名约定。如果第一个字母是大写字母,我们期望这是一个类,而不是变量或方法。修复缩进也会使其更易于阅读。

我不明白为什么您将变量设置为 false,然后调用例程来快速连续加载、开始和停止播放。

剪辑被设计为在播放时单独打开。正如所写的,在执行启动命令之前,您的代码必须将整个剪辑加载到 RAM 中。如果您事先加载 Clip(可能是在 MenuAudio 的构造函数中),那么您可以考虑一个计划,例如将剪辑变量传递给负责启动或停止它的任何方法。

关于Java Clip(Clip.Stop 不起作用),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37366586/

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