0

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

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
4

1 回答 1

0

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

Clip 的 API 中,观察到有一个start()andstop()方法(与 关联DataLine)。通常最好用自己的方法初始化和打开 Clip 进行播放,然后有单独的方法来启动和停止。停止时,您可能希望将光标的位置更改为第一帧 ( setFramePosition(0)),以便在重新启动时,音乐从Clip.

于 2021-09-03T00:12:05.830 回答