スイングで音楽を流す時間を設定する方法

Swing の音楽再生時間を設定するには、javax.sound.sampled パッケージ内の AudioSystem と Clip クラスを使用します。以下は、再生開始時間と終了時間の設定方法を示すサンプルコードです。

まず、必要なパッケージをインポートする必要があります。

import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import java.io.File;

そして、開始時間と終了時間の設定コードを含むplayMusicメソッドを作成して音楽を再生できます。

public void playMusic(File musicFile, int startTime, int endTime) {
    try {
        // 创建AudioInputStream对象
        AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(musicFile);
        
        // 获取音频格式
        AudioFormat format = audioInputStream.getFormat();
        
        // 创建DataLine.Info对象,用于描述音频格式
        DataLine.Info info = new DataLine.Info(Clip.class, format);
        
        // 使用info对象创建Clip对象
        Clip clip = (Clip) AudioSystem.getLine(info);
        
        // 打开音频流
        clip.open(audioInputStream);
        
        // 设置开始时间
        clip.setMicrosecondPosition(startTime * 1000);
        
        // 播放音乐
        clip.start();
        
        // 等待音乐播放结束
        Thread.sleep(endTime - startTime);
        
        // 停止音乐播放
        clip.stop();
        clip.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

PlayMusicメソッドを呼び出す際には、音楽ファイルのパス、開始時刻(ミリ秒)、終了時刻(ミリ秒)を渡す必要があります。Thread.sleepメソッドでは、endTime – startTimeで待機すべき時間を決定しています。

以下に例を示します。

public static void main(String[] args) {
    File musicFile = new File("path_to_music_file.wav");
    int startTime = 5000; // 从第5秒开始播放
    int endTime = 10000; // 播放到第10秒结束
    
    playMusic(musicFile, startTime, endTime);
}

「path_to_music_file.wav」を実際の音楽ファイルパスに書き換えることを忘れないでください。

bannerAds