import java.awt.*;
import java.applet.*;
import java.net.*;
import java.util.*;
import java.io.*;
public class read_wav_udp extends Applet
{
TextField tex0;
Button but1,but2,but3;
WavFile h1=new WavFile();
UdpData udph1=new UdpData();
int ch=0,len=0,fre=0,bit=0;
double t=0,a1=0,a2=0;
short x1[]=new short[16385];
short x2[]=new short[16385];
byte buffer[]=new byte[64540];
int par[]=new int[5];
public read_wav_udp(){}
public void init()
{
Font NewFnt=new Font("Roman",Font.PLAIN,12);
this.setFont(NewFnt);
resize(540,300);
setLayout(null);
udph1=new UdpData();
tex0=new TextField("");
add(tex0);
tex0.reshape(28,10,500,20);
but1=new Button("Ding");
add(but1);
but1.reshape(130,260,60,20);
but2=new Button("Chord");
add(but2);
but2.reshape(230,260,60,20);
but3=new Button("UDP");
add(but3);
but3.reshape(330,260,60,20);
data("ding.wav");
}
public boolean action(Event evt,Object o)
{
if(evt.target==but1)
data("ding.wav");
if(evt.target==but2)
data("chord.wav");
if(evt.target==but3)
data1();
repaint();
return true;
}
public void data(String name)
{
URL url1;
try
{
url1=new URL(getDocumentBase(),name);
}
catch(Exception e)
{
url1=getDocumentBase();
}
h1.read(url1,buffer,x1,x2,16384,par);
ch=par[0];
fre=par[1];
len=par[2];
bit=par[3];
}
public void data1()
{
String host;
host=getCodeBase().getHost();
udph1.read(host,buffer,x1);
ch=1;
fre=11025;
len=1024;
bit=16;
}
public void paint(Graphics g)
{
drawwave(g);
tex0.setText("CH="+ch+",Fs="+fre+",Len="+len+",Bit="+bit);
}
public void drawwave(Graphics g)
{
int i,xx1,xx2,yy1,yy2;
double ff=1,sa,la,k,mm;
g.setColor(Color.lightGray);
g.fillRect(0,0,600,400);
g.setColor(Color.black);
g.drawRect(28,40,500,200);
g.drawString("A",14,50);
g.drawString("-A",8,240);
g.drawString("0",14,145);
g.drawString("0",30,255);
g.drawString("T",525,255);
t=500.0/fre;
if(ch==0)return;
sa=la=x1[1];
for(i=1;i<500;i++)
{
if(sa>x1[i])
sa=x1[i];
if(la<x1[i])
la=x1[i];
}
a1=Math.max(Math.abs(sa),Math.abs(la));
k=1.2*a1;
ff=100/k;
g.setColor(Color.red);
for(i=1;i<500;i++)
{
xx1=28+i;
yy1=(int)(140-x1[i]*ff);
xx2=29+i;
yy2=(int)(140-x1[i+1]*ff);
g.drawLine(xx1,yy1,xx2,yy2);
}
if(ch==1)
return;
sa=la=x2[1];
for(i=1;i<500;i++)
{
if(sa>x2[i])
sa=x2[i];
if(la<x2[i])
la=x2[i];
}
a2=Math.max(Math.abs(sa),Math.abs(la));
k=1.2*a2;
ff=100.0/k;
g.setColor(Color.blue);
for(i=i;i<500;i++)
{
xx1=28+i;
yy1=(int)(140-x2[i]*ff);
xx2=29+i;
yy2=(int)(140-x2[i+1]*ff);
g.drawLine(xx1,yy1,xx2,yy2);
}
}
}
class WindowStream extends FilterInputStream
{
...见前面
}
class WavFile
{
...见前面
}
class UdpData
{
...见前面
}
|
相关推荐
JNI开发Java和C/C++互相传递List集合, 可以参考: Java从C/C++获取List集合对象:https://blog.csdn.net/niuba123456/article/details/80994166 Java传递List集合对象到C/C++ ...
同时,为了便于C语言学习,加入C语言流程控制语句演示动画、C语言学习指导、可以方便地进行网络上和本机上的C/C++程序进行对照输入练习、入门程序实例、典型源程序、典型的函数算法,课程设计指导、课程设计源程序、...
Deitel父子俩从事编程和教学几十年,积累了丰富的经验,通过本书讲述了C语言、C++以及Java语言的基本概念及编程方法。本书重在强调程序的清晰性与实用性,书中给出了大量的相关提示信息,可以引导读者养成良好的变成...
最近需要和银行pos做数据通讯,银行端算法为java实现的 AES/ECB/PKCS5PADDING我也改不了, c/c++这边实现ECB算法本来就少,PKCS5PADDING的更是没有,索性自己动手。工作原因c和java都得熟悉,因此把java端和c/c++...
官方介绍:原名《Turbo C/C++ for Windows 集成实验与学习环境》,支持最新操作系统WINDOWS 7,它是从事一线教学的大学教师根据C/C++ 初学者的特点,量身定制的一个简单易用的 C/C++程序设计学习与实验软件(支持TC2/...
C语言/C++基础之爱心程序源码,适合初学C语言/C++的小伙伴学习研究,博客中有对应的讲解和演示,避免走弯路,费时费力。也真心希望能够帮助正在苦学C语言/C++ 程序设计的小伙伴们,你们的成长是我最大的幸福
C语言/C++基础之爱心源码,适合初学C语言/C++的小伙伴学习研究,博客中有对应的讲解和演示,避免走弯路,费时费力。也真心希望能够帮助正在苦学C语言/C++ 程序设计的小伙伴们,你们的成长是我最大的幸福
C语言/C++集成开发环境 Dev-C++。一款优秀的C/C++集成开发软件。
Java与C/C++的区别(转).
Dev-cpp5.4.0及API帮助文档 2018年蓝桥杯C语言/c++ 需要的同学可以下载使用
最近需要和银行pos做数据通讯,银行端算法为java实现的 AES/ECB/PKCS5PADDING我也改不了, c/c++这边实现ECB算法本来就少,PKCS5PADDING的更是没有,索性自己动手。工作原因c和java都得熟悉,因此把java端和c/c++...
原名《Turbo C/C++ for Windows 集成实验与学习环境》,支持最新操作系统WINDOWS 7,它是从事一线教学的大学教师根据C/C++ 初学者的特点,量身定制的一个简单易用的 C/C++程序设计学习与实验软件(支持TC2/TC3、VC6三...
C语言/C++ 烟花表白代码 C语言/C++ 烟花表白代码 C语言/C++ 烟花表白代码 C语言/C++ 烟花表白代码
C/C++程序设计导论(第二版)》附书源码
C语言/C++基础之冰墩墩源码,适合初学C语言/C++的小伙伴学习研究,博客中有对应的讲解和演示,避免走弯路,费时费力。也真心希望能够帮助正在苦学C语言/C++ 程序设计的小伙伴们,你们的成长是我最大的幸福
通过jni完成java调用c/c++,包含c/c++生成Dll动态库
C语言/C++基础之跨年烟花代码,适合初学C语言/C++的小伙伴学习研究,博客中有对应的讲解和演示,避免走弯路,费时费力。也真心希望能够帮助正在苦学C语言/C++ 程序设计的小伙伴们,你们的成长是我最大的幸福
Visual C++6.0中英文编译错误信息同步显示功能(并配有60多种同步的语法错误程序实例、修改方法等)、 Turbo C2.0 中英文编译错误信息同步显示功能、Turbo C++3.0常见编译错误信息、C语言专业词汇的中英文对照、二级 ...
原名《Turbo C/C++ for Windows 集成实验与学习环境》,现在已支持最新操作系统WINDOWS 7,它是从事一线教学的大学教师根据多媒体教学演示和C语言初学者的特点,量身打造的一个简单易用的C/C++程序设计教学演示、学习...