【Java开源代码栏目提醒】:以下是网学会员为您推荐的Java开源代码-AudioCapture.java,希望本篇文章对您学习有所帮助。
package AudioCaptureTransmit;
import javax.media.*;
import java.awt.*;
import java.awt.event.*;
import java.util.Vector;
import java.io.IOException;
import javax.media.protocol.FileTypeDescriptor;
import javax.media.protocol.DataSource;
import javax.media.control.StreamWriterControl;
import javax.media.format.AudioFormat;
import javax.swing.*;
// 主界面类
public class AudioCapture extends Frame{
RTPTransmit rtpTransmit = null; // RTP传输类对象
Label labelEncoding = new Label();
Choice choiceEncoding = new Choice(); // 编码方法下拉列表框
Label labelSampleRate = new Label();
Choice choiceSampleRate = new Choice(); // 采样率下拉
列表框
Label labelBits = new Label();
CheckboxGroup checkboxGroupBits = new CheckboxGroup();
Checkbox checkbox8Bit = new Checkbox(); // 每个样本的编码位数单选按钮
Checkbox checkbox16Bit = new Checkbox();
Label labelChannels = new Label();
CheckboxGroup checkboxGroupChannels = new CheckboxGroup();
Checkbox checkboxMono = new Checkbox(); // 通道数单选按钮
Checkbox checkboxStereo = new Checkbox();
JLabel jLabel1 = new JLabel();
Label labelIP = new Label();
TextField textIPAdd1 = new TextField(); // IP地址编辑框
TextField textIPAdd4 = new TextField();
TextField textIPAdd3 = new TextField();
TextField textIPAdd2 = new TextField();
Label labelPort = new Label();
TextField textPort = new TextField(); // 端口号编辑框
JLabel jLabel2 = new JLabel();
Button buttonCaptureTransmit = new Button();
Button buttonStop = new Button();
// 设置界面和添加事件的监听
private void jbInit() throws Exception {
this.setLayout(null);
this.setBackground(Color.lightGray);
labelEncoding.setText("Encoding:");
labelEncoding.setBounds(new Rectangle(46, 50, 80, 20));
choiceEncoding.setBounds(new Rectangle(152, 50, 180, 20));
choiceEncoding.add("DVI/RTP");
choiceEncoding.add("G723/RTP");
choiceEncoding.add("GSM/RTP");
choiceEncoding.add("ULAW/RTP");
choiceEncoding.add("MPEGAUDIO/RTP");
choiceEncoding.select(0);
choiceEncoding.addItemListener(new java.awt.event.ItemListener() {
public void itemStateChanged(ItemEvent e) {
choiceEncoding_itemStateChanged(e);
}
});
labelSampleRate.setText("Sample Rate:");
labelSampleRate.setBounds(new Rectangle(46, 80, 80, 20));
choiceSampleRate.setBounds(new Rectangle(152, 80, 180, 20));
choiceSampleRate.add("22050.0");
choiceSampleRate.add("11025.0");
choiceSampleRate.add("8000.0");
choiceSampleRate.select(0);
labelBits.setText("Bits per Sample:");
labelBits.setBounds(new Rectangle(46, 110, 100, 20));
checkbox8Bit.setLabel("8 bit");
checkbox8Bit.setBounds(new Rectangle(152, 110, 60, 20));
checkbox8Bit.setCheckboxGroup(checkboxGroupBits);
checkbox16Bit.setLabel("4 bit");
checkbox16Bit.setBounds(new Rectangle(250, 110, 60, 20));
checkbox16Bit.setCheckboxGroup(checkboxGroupBits);
checkboxGroupBits.setSelectedCheckbox(checkbox16Bit);
checkbox8Bit.setEnabled(false);
labelChannels.setText("Channels:");
labelChannels.setBounds(new Rectangle(46, 140, 80, 20));
checkboxMono.setLabel("mono");
checkboxMono.setBounds(new Rectangle(152, 140, 60, 20));
checkboxMono.setCheckboxGroup(checkboxGroupChannels);
checkboxStereo.setLabel("stereo");
checkboxStereo.setBounds(new Rectangle(250, 140, 60, 20));
checkboxStereo.setCheckboxGroup(checkboxGroupChannels);
checkboxGroupChannels.setSelectedCheckbox(checkboxMono);
checkboxStereo.setEnabled(false);
jLabel1.setBorder(BorderFactory.createEtchedBorder());
jLabel1.setBounds(new Rectangle(20, 35, 336, 136));
labelIP.setText("IP Address:");
labelIP.setBounds(new Rectangle(46, 190, 85, 20));
textIPAdd1.setBounds(new Rectangle(152, 190, 42, 20));
textIPAdd2.setBounds(new Rectangle(198, 190, 42, 20));
textIPAdd3.setBounds(new Rectangle(244, 190, 42, 20));
textIPAdd4.setBounds(new Rectangle(290, 190, 42, 20));
labelPort.setText("Port:");
labelPort.setBounds(new Rectangle(46, 220, 70, 20));
textPort.setBounds(new Rectangle(152, 220, 42, 20));
jLabel2.setBorder(BorderFactory.createEtchedBorder());
jLabel2.setBounds(new Rectangle(20, 178, 336, 78));
buttonCaptureTransmit.setLabel("Capture&Transmit");
buttonCaptureTransmit.setBounds(new Rectangle(40, 272, 135, 22));
buttonCaptureTrans