为了账号安全,请及时绑定邮箱和手机立即绑定

我正在尝试停止用户继续播放的特定方法

我正在尝试停止用户继续播放的特定方法

qq_遁去的一_1 2022-09-21 21:38:17
我正在制作一个游戏,一个特定的危害游戏,在游戏中我有背景噪音,例如,如果用户答对了一个问题,就会响起叮当声,人群欢呼。这不是一个巨大的游戏破坏问题,但是我想知道如果用户在提示的JOptionPane中单击“ok”,是否有任何方法可以阻止噪音。我还想说,我对编码非常陌生。我已经尝试搜索如何停止正在播放的文件,但是我找不到任何东西,所以如果有人知道如何制作它,那么可以停止正在播放的文件或可以停止文件本身保存的方法,那就太好了。package testing;import java.awt.Color;import java.awt.Font;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.File;import static java.awt.Font.BOLD;import javax.sound.sampled.AudioSystem;import javax.sound.sampled.Clip;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JOptionPane;public class testing implements ActionListener{    static String Choice;           static String[][] Questions = {{"The Raptor is the mascot for which basketball team"}};    static String[][] Answers = {{"Toronto Raptors"}};public  JButton[][] t = new JButton[5][5];public static void main(String[] args) {    new testing();    }static int n = 100;public testing() {    JFrame scoreframe = new JFrame("SCORE");    scoreframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);       scoreframe.setSize(400,250);    scoreframe.setVisible(true);    JFrame gameframe = new JFrame("Jeopardy");    gameframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);       gameframe.setSize(1920,1080);    gameframe.setLayout(new GridLayout(6, 4));    }}我缩小了我的代码范围,所以如果有人试图在他们的程序中尝试它,他们不必处理任何额外的事情。基本上,我分解了我的代码以显示问题,我知道您将无法听到声音,但是出于帮助目的,让我们说声音都是10分钟长的(它们不是真的,但让我们说它们是),如果你运行我的代码并单击位置1,1中的第一个按钮,它会问你猛禽是哪个篮球队吉祥物, 因此,当您输入答案(“多伦多猛龙队”)时,会出现一条消息,告诉用户他们正确回答了问题以及他们赚了多少钱,因为发生这种情况,10分钟的音乐正在后面播放。他们点击“ok”,音乐仍然在整个音轨的后面,我怎么能让它,所以当用户点击“ok”声音停止?
查看完整描述

1 回答

?
MM们

TA贡献1886条经验 获得超2个赞

首先,您希望保留对当前剪辑的引用(无论它现在是否实际播放都无关紧要)。为此,请创建一个静态变量来保存剪辑。然后定义和函数,当每个将首先尝试.此外,最好不要将相同的代码复制并粘贴到不同的函数中:playstopplaystop


private static Clip clip = null;


public static void stop() {

    if (clip != null) {

        clip.stop();

        clip = null;

    }

}


public static void play(String toPlayName) {

    stop();

    File toPlay = new File(toPlayName);

    try {

        clip = AudioSystem.getClip();

        clip.open(AudioSystem.getAudioInputStream(toPlay));

        clip.start();

    } catch (Exception e) {

    }

}


public static void crowd() {

    play("crowd.wav");

}


public static void applause() {

    play("Applause.wav");

}


public static void check() {

    play("check.wav");

}


查看完整回答
反对 回复 2022-09-21
  • 1 回答
  • 0 关注
  • 58 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信