易截截图软件、单文件、免安装、纯绿色、仅160KB

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<audioData.length;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<drawl.length-1;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


相关文档:

Java中集合容器类List和Set的用法

List的用法
List包括List接口以及List接口的所有实现类。因为List接口实现了Collection接口,所以List接口拥有Collection接口提供的所有常用方法,又因为List是列表类型,所以List接口还提供了一些适合于自身的常用方法,如表1所示。
表1  List接口定义的常用方法及功能
从表1可以看出,List接口提供的适合于自身的 ......

JNA实现Java调用Fortran

在成功实现Java调用C++之后,接下来想到能否通过JNA实现Java调用Fortran,今天试验了一下,还是比较容易的。
网上有一个Java调用F95的例子,但是我考虑不仅要实现F95的调用,还要实现F77的调用,所以费了一些周折。
问题的关键在于F77为过程名自动添加了一个尾部的下划线,所以sub1这个过程,到Java一端,就变成了sub1_, ......

java常用日期处理

package com.hefeng.test;  
  
  
import java.text.DateFormat;  
import java.text.ParsePosition;  
import java.text.SimpleDateFormat;  
import java.util.Calendar;  
import java.util.Date;  
import java.uti ......

java 获取时间类

 public String getCheckDateString(String str) {
        Date date = new Date();//获取当前系统日期
        SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");//时间格式
       ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号