为什么我不能用 java 播放 mp3 文件

为什么我不能用 java 播放 mp3 文件

我正在用 Java 制作一本学习指南来帮助我学习日语,但我一直很难让它对我说日语。Espeak 不起作用,所以我用了此代码获取 .mp3 文件并安装 mpg123 来播放该文件。这在终端上运行良好,但无法在 java 中播放。

我的代码:

String command="mpg123 "+dir+"/Xubuntu\\ Apps/Study\\ guide/Japanese/sounds/あう.mp3";
        System.out.println(command);
        try {Runtime.getRuntime().exec(command);} catch (IOException e) {e.printStackTrace();}

输出

mpg123 /home/myuser/Documents/Xubuntu\ Apps/Study\ guide/Japanese/sounds/あう.mp3

我听不到声音,但是当我在终端中复制/粘贴命令时,它可以正常工作。

为什么不能在 Java 中播放?

答案1

如果您想使用嵌入代码播放歌曲,那么您可以使用此代码,:)

来源:http://java-demos.blogspot.hu/2012/11/java-code-to-play-mp3-file.html

使用 Java 播放 MP3 歌曲的代码:

import javax.media.*;
import java.net.*;
import java.io.*;
import java.util.*;

public class AudioPlay {

    public static void main(String args[]) throws Exception {

        // Take the path of the audio file from command line
        File f = new File(args[0]);

        // Create a Player object that realizes the audio
        final Player p = Manager.createRealizedPlayer(f.toURI().toURL());

        // Start the music
        p.start();

        // Create a Scanner object for taking input from cmd
        Scanner s = new Scanner(System.in);

        // Read a line and store it in st
        String st = s.nextLine();

        // If user types 's', stop the audio
        if (st.equals("s")) {
            p.stop();
        }
    }
}

解释

玩家是一个接口媒体库包。由于您无法直接为接口创建对象,因此编写了一些实现该接口的类并使用它的对象。Manager 就是这样一个可以做这件事的类。

玩家会处于几种状态。它们是

未实现:意思是,播放器不知道它要做什么(关于媒体)

实现:意思是,玩家正在意识到完成任务(播放文件)所需的世界(确定资源)

已实现:意思是,播放器获得播放文件的资源并且还会获得一些关于媒体类型等的信息。

预取:现在它已经准备好了,它知道如何播放该文件。

预取:现在,它知道如何播放媒体了。现在可以播放了。

开始:开始音乐,开始播放文件。

我们已经创建了一个已实现的播放器,但这并不意味着跳过了 UNREALIZED、REALIZING 步骤,而是自动完成这些步骤。该方法createRealizedPlayer(URL url)采用指向媒体文件的 URL。要从 File 对象获取 URL 对象,您可以使用类toURL()中的方法java.io.File,由于该方法已被弃用,我们调用了toURI()返回java.net.URI对象的方法,然后toURL()调用其中的方法。用户还需要停止音乐,因此输入来自用户。

但是无法显示输出,您必须尝试一下,请记住,在执行程序时提供音频文件的完整路径,否则ArrayIndexOutOfBoundsException会出现问题。命令可能如下所示:

java AudioPlay "Path/to/file.mp3"

功劳归于Java 演示

相关内容