如何使用单独的方法通过剪辑停止音频

How to stop audio through clips with a seperate method

这是我的代码。我把它放在一个单独的 class 中,所以我可以简单地调用开始和停止音乐,而我想做的实际上是通过调用 stopMusic 方法找到停止音乐的方法。我不知道如何使用剪辑和 InputStreams,所以我不确定有什么方法可以实际实现我正在尝试做的事情。 (编辑:我应该提到 none 这段代码是我的,所以我不熟悉它,我试图找到一种方法将音频实现到我的游戏中并找到了一个有用的教程)

import java.io.IOException;

import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.UnsupportedAudioFileException;
import javax.swing.JOptionPane;

public class musicStuff {

    void playMusic (String musicLocation)
    {
        try
        {
            File musicPath = new File(musicLocation);
            
            if (musicPath.exists())
            {
                AudioInputStream audioInput = AudioSystem.getAudioInputStream(musicPath);
                Clip clip = AudioSystem.getClip();
                clip.open(audioInput);
                clip.start();
                clip.loop(Clip.LOOP_CONTINUOUSLY);
            }
            else 
            {
                System.out.println("Can't find file");
            }
        }
        catch (Exception ex)
        {
            ex.printStackTrace();
        }
    }
    
    void stopMusic (String musicLocation)
    {
    
        
    }
    
}

//If anyone can help me with this I'd appreciate it

Clip 应该是一个实例变量,否则,您将无法在 stopMusic() 方法中访问它。

API for Clip 观察有一个 start()stop() 方法(与 DataLine 相关联)。通常一个好的做法是用它自己的方法初始化和打开 Clip 进行播放,然后有单独的启动和停止方法。停止时,您可能希望将光标的位置更改为第一帧 (setFramePosition(0)),这样当您重新开始时,音乐会从 Clip.

的开头开始播放