2021-08-29

本文介绍了使用Java实现音频文件多线程播放的示例,展示了如何通过`AdvancedPlayer`处理异常并创建自定义线程来并发播放不同音轨。程序中使用了`KeyAdapter`监听键盘输入,根据按键触发不同的音频文件播放。
摘要由CSDN通过智能技术生成

多线程播放音频 Java

package demoone;

import java.awt.Frame;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.io.IOException;
import java.util.Random;
import javazoom.jl.decoder.JavaLayerException;
import javazoom.jl.player.advanced.AdvancedPlayer;

public class Musictest extends Frame {
	
	private void starttest() {
		// TODO Auto-generated method stub
		setTitle("小钢琴程序");
		setSize(500, 500);
		Random rd = new Random();
		int x = rd.nextInt(1800);
		int y = rd.nextInt(900);
		setLocation(x, y);
		setVisible(true);
		addKeyListener(new Keyboard());
	}
	class Keyboard extends KeyAdapter{	
		public void keyPressed(KeyEvent e) {
			String partn1 = null;
			String s= "asdfghj";
			int n= e.getKeyCode();
			String i =e.getKeyChar()+"";
			int m = s.indexOf(i)+1;
			if(m>=1&&m<=7) {
				partn1= "h"+m+".mp3";
			}if(n>=49&&n<=55) {
				partn1 = "d"+(n-48)+".mp3";
			}
			Thread key = new key(partn1);
			key.start();
		}
	}
	class key extends Thread{
		AdvancedPlayer ad;
		String partn;
		public key(String partn) {
			// TODO Auto-generated constructor stub
			this.partn = partn;
		}
		@Override
		public void run() {
			// TODO Auto-generated method stub
			super.run();
			try {
				ad = new AdvancedPlayer(key.class.getResourceAsStream(partn));
				ad.play();
			} catch (JavaLayerException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		} 
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println("小钢琴程序开始了!");
		Musictest mut= new Musictest();
		mut.starttest();
	}
}

  • 这个程序虽然报异常,但是还是可以正常运行
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值