0

jar ファイル内のクラスパスに問題があります。写真付きで正常に
getClass().getResource("picture.png")動作します。しかし、mp3 ファイルを取得する必要があります。
jarファイルの外側にパス全体を入れると問題なく動作しますが、「ファイルが見つかりません」と表示さ
れるようにフルパスなしで試してみるとうまくいきます。getClass().getResource("picture.png")だから私はsong.mp3のパスの解決策を探しているので、.jarをビルドして別のコンピューターで開いても曲が再生されます。

これは私のコードです:

package bgmusic;

import java.io.*;

import javax.media.Format;
import javax.media.Manager;
import javax.media.MediaLocator;
import javax.media.Player;
import javax.media.PlugInManager;
import javax.media.format.AudioFormat;

public class Bgmusic {
    public static void main(String[] args) {
        Format input1 = new AudioFormat(AudioFormat.MPEGLAYER3);
        Format input2 = new AudioFormat(AudioFormat.MPEG);
        Format output = new AudioFormat(AudioFormat.LINEAR);
        PlugInManager.addPlugIn(
            "com.sun.media.codec.audio.mp3.JavaDecoder",
            new Format[]{input1, input2},
            new Format[]{output},
            PlugInManager.CODEC
        );
        try{
            Player player = Manager.createPlayer(new MediaLocator(new File("song.mp3").toURI().toURL()));
            player.start();
        }
        catch(Exception ex){
            ex.printStackTrace();
        }
    }
}
4

1 に答える 1