java 判断bgm停止_Java Jlayer Mp3 Player-如何重复和停止播放歌曲

Java JLayer库不支持自动连续播放,需要通过循环来实现。示例代码展示了如何创建一个线程来重复播放MP3文件,并提供了停止播放的方法。线程类`MyAudioPlayer`扩展了`Thread`,允许根据布尔值`loop`控制播放次数,使用`close()`方法可中断播放。
摘要由CSDN通过智能技术生成

JLayer不支持连续播放,因此您必须使用循环来在旧播放器播放完毕后重复启动新播放器.例如:

尝试

????????{

????????????做

????????????{

????????????????FileInputStream buff =新的FileInputStream(Okno.filename);

????????????????prehravac =新的AdvancedPlayer(buff);

????????????????prehravac .play();

????????????}而(循环);

????????}

????????catch(异常ioe)

????????{

????????????// TODO错误处理

????????}

如果loop是一个布尔值,则可以根据是否要播放一次或重复播放来用其他方法设置true或false.

如果以后要访问该线程,则至少应将其声明为变量.更好的是编写一个单独的类来扩展线程.这样,您可以将方法添加到以后可以调用的线程中.

对于您的代码,它可能看起来像这样:

import java.io.*;

import javazoom.jl.player.*;

public class MyAudioPlayer extends Thread {

private String fileLocation;

private boolean loop;

private Player prehravac;

public MyAudioPlayer(String fileLocation, boolean loop) {

this.fileLocation = fileLocation;

this.loop = loop;

}

public void run() {

try {

do {

FileInputStream buff = new FileInputStream(fileLocation);

prehravac = new Player(buff);

prehravac.play();

} while (loop);

} catch (Exception ioe) {

// TODO error handling

}

}

public void close(){

loop = false;

prehravac.close();

this.interrupt();

}

}

这样,您可以像这样在任何时间和地点轻松创建线程:

private MyAudioPlayer thePlayer;

[... some class code here...]

public void yourMethod(){

thePlayer = new MyAudioPlayer("path of the music file", true);

thePlayer.start();

}

如果您想摆脱它,请调用thePlayer.close();.

请注意,Player应该是一个实例变量,因此您可以再次重用它.如果仅在方法中声明它,则该方法完成后将消失.

希望这可以帮助.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值