600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > java画波形图代码_JAVA画出wav音频波形图

java画波形图代码_JAVA画出wav音频波形图

时间:2019-12-03 17:25:26

相关推荐

java画波形图代码_JAVA画出wav音频波形图

字号:大 中 小

import java.awt.Graphics;

import java.io.File;

import javax.sound.sampled.AudioFormat;

import javax.sound.sampled.AudioInputStream;

import javax.sound.sampled.AudioSystem;

import javax.sound.sampled.DataLine;

import javax.sound.sampled.SourceDataLine;

public class Musicline extends javax.swing.JFrame implements Runnable{

private byte[] audioData=null;

private int intBytes = 0;

private byte[] ml=new byte[1];

private int[] drawl=null;

/** Creates new form Musicline */

public Musicline() {

initComponents();

Graphics g;

g=this.getGraphics();

}

public void paint(Graphics g)

{

g.clearRect(0,0,900,900);

//System.out.print(drawl.length);

if(audioData!=null)

{

drawl=new int[audioData.length];

for(int i=0;i

{

ml[0]=audioData;

//String s=new String(ml);

drawl=Math.abs((int)ml[0]);

}

System.out.println(drawl[0]);

for(int i=0;i

{

g.drawLine(i*this.getWidth()/256,drawl+100,(i+1)*this.getWidth()/256,drawl[i+1]+100);

}

}

}

public void run()

{

while(intBytes!=-1)

{

try {

synchronized(this){

this.wait(10);

}

} catch (InterruptedException ex) {

ex.printStackTrace();

}

repaint();

}

}

public void play()

{

try {

AudioInputStream ais = AudioSystem.getAudioInputStream(new File(

"E:/a.wav"));// 获得音频输入流

ais=AudioSystem.getAudioInputStream(AudioFormat.Encoding.PCM_SIGNED,ais);

AudioFormat baseFormat = ais.getFormat();// 指定声音流中特定数据安排

System.out.println("baseFormat="+baseFormat);

DataLine.Info info = new DataLine.Info(SourceDataLine.class,

baseFormat);

System.out.println("info="+info);

SourceDataLine line = (SourceDataLine) AudioSystem.getLine(info);

// 从混频器获得源数据行

System.out.println("line="+line);

line.open(baseFormat);// 打开具有指定格式的行,这样可使行获得所有所需的系统资源并变得可操作。

line.start();// 允许数据行执行数据 I/O

int BUFFER_SIZE = 256;

audioData = n

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。