问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何用Java写一个原生wav播放器

发布网友 发布时间:2022-04-22 21:44

我来回答

1个回答

热心网友 时间:2022-04-22 23:14

MusicPlayer.java
[java] view plain copy
package musicplayer;

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.WindowConstants;

/**
*
* @author Chandler
*/
public class MusicPlayer extends JFrame{

private Container container;
private JButton playbutton;
private PlayBackThread playbackthread;
//默认构造函数
public MusicPlayer(String title){
super(title);
container = this.getContentPane();
playbutton = new JButton("播放");
playbutton.setSize(50,20);
playbutton.addActionListener(new PlayActionListener());
this.setLayout(new BorderLayout());
this.setSize(500,400);
container.add(playbutton,BorderLayout.CENTER);
Toolkit toolkit = Toolkit.getDefaultToolkit();
int x = (int)(toolkit.getScreenSize().getWidth()-this.getWidth())/2;
int y = (int)(toolkit.getScreenSize().getHeight()-this.getHeight())/2;
this.setLocation(x,y);
this.setVisible(true);
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
MusicPlayer musicplayer = new MusicPlayer("MusicPlayer");
}
class PlayActionListener implements ActionListener{

@Override
public void actionPerformed(ActionEvent e) {
System.out.println(e.getActionCommand());
playbackthread = new PlayBackThread();
playbackthread.start();
}
}
}
PlayBackThread.java

[java] view plain copy
package musicplayer;
import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.SourceDataLine;
import javax.sound.sampled.LineUnavailableException;

import java.io.RandomAccessFile;

import java.util.Scanner;

/**
*
* @author Chandler
*/
public class PlayBackThread extends Thread{
private SourceDataLine dataline;
private final int dataOffset = 0x2e;
public PlayBackThread(){
super("playbackthread");
}

@Override
public void run(){
try{
RandomAccessFile raf = new RandomAccessFile("C:\\Users\\Chandler\\Documents\\NetBeansProjects\\MusicPlayer\\src\\musicplayer\\John Denver - Country Roads.wav","r");
AudioFormat af;
af = new AudioFormat(44100,16,2,true,false);
dataline = (SourceDataLine)AudioSystem.getSourceDataLine(af);
dataline.open(af);
raf.seek(dataOffset);
int hasRead=0;
dataline.start();
byte[] buff=new byte[4096];
Scanner input = new Scanner(System.in);
while((hasRead=raf.read(buff))>0){
// print(raf.getFilePointer(),buff);
dataline.write(buff, 0, hasRead);
}
dataline.stop();
} catch(Exception e){
e.printStackTrace();
}
}
public static void print(long pointer, byte[] buff){
System.out.format("%x: " ,pointer);
System.out.format("%x ", buff[0]);
System.out.format("%x ", buff[1]);
System.out.format("%x ", buff[2]);
System.out.format("%x ", buff[3]);

System.out.println();
}
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
有效的教学激励策略有哪些 手机充电嗡嗡响怎么回事 手机在充电时发出嗡嗡作响 手机充电头快充有嗡嗡的声音 影视多媒体设计真的不好找工作吗 专科学影视多媒体技术好就业吗 影视多媒体技术专业就业怎么样 影视多媒体技术就业率 胆结石病人在输血后半个月,全身开始发痒是什么原因,怎样能够止痒呢?谢 ... 有关胆结石手术后的恢复,求教 股票入门基础知识:场外交易是什么意思 股市【场外交易系统】是什么? 买卖股票都是在什么平台操作? 股票交易平台哪个好,有没有推荐的? 祝福儿子儿媳幸福美满句子有哪些? 父亲对儿子儿媳新婚的幽默祝福语 母亲要对未来媳妇的话 怎样看直播关闭后的人数? 棚户区改造开发商需要的手续 棚户区改造安置房有房产证吗 棚户改造房有房产证吗 上下5000年是从什么时期开始算起 为什么有中国上下五千年的说法? 中华上下明明是四千年,为什么非要说上下五千年 中华上下五千年的来源是什么? 为什么在一些历史书上写的是“中华上下五千年” 讲一下,为什么叫中华上下五千年 为什么说我国有上下五千年历史 为什么我们说是中华文明上下五千年? 中国上下五千年是什么意思 谁知道广东的潮州八景是哪八景啊?? 三星s8外屏好好的也没有摔过用了一天屏幕就满屏横线是什么原因? 五年级作文《做一个有尊严的人》引用格言事例,围绕"尊严"发表自己的观点,写篇议论文 做一名什么的少年作文五年级 小学五年级作文什么最可贵 小学生五年级作文 《错误不失为种美丽》500字 请问蘑菇长毛了是什么情况呀? 小学生五年级作文《如何站好路队》 香菇长毛是什么样子 长毛的蘑菇能不能吃 为什么男的会把抖音号首字母改成你的姓的英文,后面是他的名字英文,但是却不回复你的信息,不联系你? 抖音账号为什么是dye? 抖音为什么字是英文 为什么抖音加主播号码来他们的微信都是英文名加英文名又加不到微信? 五花肉焖上海青怎么做 上海青上海青沪线和嘉上海青上海青沪线和嘉松线的交汇站 侬骨头老青上海话什么意思 青年大学习在共青团中央看和在青春上海看有区别吗 青菜上海青的种子在那能买到 找主角穿越到海贼王和路飞一起冒险的小说,最好带点恋情的