4

デスクトップで MP3 ファイルを再生しようとしています。MP3を再生するATMを持っていますが、音量を調整できません。ドキュメントに従って動作するはずですが。私のコード:

私はこれを使用します: https://code.google.com/p/java-audio-player/

import maryb.player.Player;

public class MusicPlayer {

    private Player player;
    private float volume;
    private String filePath;

    /**
     * Gets the location of the file being played.
     * @return
     */
    public String getFileLocation() {
        return filePath;
    }

    /**
     * Gets the volume at which the music file is being played.
     * @return
     */
    public float getVolume() {
        return volume;
    }

    /**
     * Sets the current volume of the music file being played.
     * @param volume
     */
    public void setVolume(float volume) {
        this.player.setCurrentVolume(volume);
    }

    /**
     * Constructs a new MusicPlayer object, to use the specified music file.
     * @param filePath - path to the music file.
     * @param volume - volume the file should be played at.
     */
    public MusicPlayer(String filePath, float volume) {
        try {
            player = new Player();
            player.setCurrentVolume(volume);
            player.setSourceLocation(filePath);
    } catch(Exception e) {
        e.printStackTrace();
    }
}

/**
 * Plays the music file.
 */
public void play() {
    if (player != null && !player.getSourceLocation().equals(null) || !player.getSourceLocation().equals("")) {
        player.play();
    }
}

/**
 * Pauses the music file. 
 */
public void pause() {
    if (player != null && !player.getSourceLocation().equals(null) || !player.getSourceLocation().equals("")) {
        player.pause();
    }
}

/**
 * Stops the music file.
 */
public void stop() {
    if (player != null && !player.getSourceLocation().equals(null) || !player.getSourceLocation().equals("")) {
        player.stop();
    }
}

public static void main( String[] args ) {
    MusicPlayer player = new MusicPlayer(signlink.findcachedir() + "music.mp3", 0.1f);
    player.play();
    }
}

これ:

player.setCurrentVolume(volume);

引数として何を設定しても、それは同じままで、音量は変わらないため、機能していないようです。しばらく前に質問しましたが、応答がなく、まだ答えを探しています。質問は次のとおりです。MP3 を再生して音量を調整したり、音楽を一時停止したり停止したりできる API を教えてください。どうもありがとう、Sam/

4

1 に答える 1

1

JLayer は、Java で音楽 (mp3 を含む) ファイルを再生するのに適しています。一時停止、停止、トラックのシークなどを行うことができます。JLayer クラスの 1 つを少し変更するだけで、プレーヤーのライン ゲイン/ボリュームを変更できます。「JLayer を使用する場合の Java でのボリュームの変更」を参照してください。JLayer を使用して音量を変更する別のクリーンな方法があるかもしれませんが、上記は機能します。

于 2013-12-21T12:18:34.193 に答える