基于JLayer实现java的语音简单播放

JLayer 是一个开源的 Java 库,它可以用来解码、转换和播放 MP3 文件。以下是一个简单的例子,展示了如何使用 JLayer 库在 Java 应用程序中播放 MP3 文件。

首先,你需要将 JLayer 库添加到你的项目中。如果你使用的是 Maven,可以在 pom.xml 文件中添加以下依赖:

<dependency>
    <groupId>javazoom</groupId>
    <artifactId>jlayer</artifactId>
    <version>1.0.1</version>
</dependency>

接下来,你可以编写一个简单的播放器类,使用 JLayer 提供的 Player 类来播放音频:

import javazoom.jl.decoder.JavaLayerException;
import javazoom.jl.player.Player;

import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;

public class SimpleMP3Player {
    private String filePath;
    private Player player;

    public SimpleMP3Player(String filePath) {
        this.filePath = filePath;
    }

    public void play() {
        try {
            // 使用 FileInputStream 获取 MP3 文件的输入流
            FileInputStream fis = new FileInputStream(filePath);
            BufferedInputStream bis = new BufferedInputStream(fis);

            // 创建一个 Player 对象来播放文件
            player = new Player(bis);

            // 开始播放
            player.play();

        } catch (FileNotFoundException e) {
            e.printStackTrace();
            System.out.println("File not found: " + filePath);
        } catch (JavaLayerException e) {
            e.printStackTrace();
            System.out.println("Error playing the audio file.");
        }
    }

    public void stop() {
        if (player != null) {
            player.close();
        }
    }

    public static void main(String[] args) {
        // 测试播放器
        String mp3FilePath = "path/to/your/mp3file.mp3";
        SimpleMP3Player mp3Player = new SimpleMP3Player(mp3FilePath);
        mp3Player.play();
    }
}

在上述代码中,SimpleMP3Player 类接收一个 MP3 文件的路径,然后使用 Player 类来播放这个文件。这个类还包含了一个 stop 方法来停止播放。

main 方法中,你需要指定 MP3 文件的路径,并创建 SimpleMP3Player 的一个实例来播放它。

注意:player.play() 方法是阻塞的,这意味着它会阻塞当前线程直到音频播放完毕。如果你想要在后台播放音乐,你可能需要将播放逻辑放在一个单独的线程中。

此外,请确保你处理异常,例如文件未找到或播放错误,以确保应用程序的健壮性。

  • 12
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值