1

我有这个代码:

    package test;

import java.io.File;

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 AudioTest {
    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("1.mp3").toURI().toURL()));
            player.realize();
                        player.start();
        }
        catch(Exception ex){
            ex.printStackTrace();
        }
    }
}

我正在尝试播放 mp3 文件,将 mp3plugin 添加到项目库以及 jmf jar 中。控制台上没有错误,但听不到声音。

文件没有播放。.wav 文件播放正常。

任何想法 ?

4

2 回答 2

3

JMF 是一个糟糕的选择。该项目很久以前就被放弃了。我在这里回答了一个类似的问题:

Java - 尝试使用 mp3plugin 播放 mp3 文件时出错

它可能对你有用 - 我正在使用 Java Sound

于 2013-02-19T14:42:13.113 回答
0

以下是我播放音乐所需的全部内容。

public static void main(String args[]) throws NoPlayerException, CannotRealizeException, IOException {
    MediaLocator ml = new MediaLocator((new File("roar_of_future.mp3").toURL()));
    Player player = Manager.createRealizedPlayer(ml);
    player.start();
}

所以请确保mp3plugin.jar在类路径中,并且您的 javasdk 是 Java 8(32 位)或 7(32 位),因为 JMF 不适用于 Java 9 及更高版本。

于 2019-10-31T18:15:06.753 回答