Atitit java播放 wav  MIXER 混响器编程

目录

1.1. MIXER 混响器编程 1

1.2. 得到系统中一共有多少个混音器设备: 1

1.3. 接口摘要 1

1.4. 调节音量 2

1.5. Code /bookmarksHtmlEverythingIndexPrj/src/apkg/soundPlay.java 3

  1. MIXER 混响器编程

2013年10月14日 17:17:24 fakine 阅读数:3632

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/fakine/article/details/12711779

  1. 得到系统中一共有多少个混音器设备:


(在一般的系统中只有一块声卡,所以返回的值应该为1;我的系统中装有一块PIC创新声卡,一块主板载C-media声卡,还安装了Totalrecorder软件,所以返回值是3)
int devnum=::mixerGetNumDevs();

  1. 接口摘要

Clip

Clip 接口表示特殊种类的数据行,该数据行的音频数据可以在回放前加载,而不是实时流出。

DataLine

DataLine 将与介质相关的功能添加到其超接口 Line。

Line

Line 接口表示单声道或多声道音频供给。

LineListener

可以注册实现 LineListener 接口的类的实例来接收行状态更改时发生的事件。

Mixer

混频器是一个具有一行或多行的音频设备。

Port

端口是往返于音频输入或输出线与音频设备之间的简单线路。

SourceDataLine

源数据行是可以写入数据的数据行。

TargetDataLine

目标数据行是可以从中读取音频数据的某种类型的 DataLine。

    1. 调节音量
  1. sline.open();
  2. FloatControl volctrl=(FloatControl)sline.getControl(FloatControl.Type.MASTER_GAIN);
  3. volctrl.setValue(newVal);// newVal - the value of volume slider

也就是说,必须开始播放,得到了播放的DataLine以后才可以得到Control信息.

我这么做了,的到

Master Gain with current value: 0.0 dB (range: -80.0 - 6.0206)

不太懂dB是怎么算的,反正默认值为0,也就是说,向正(增大音量)只能移动6个单位.对于一个JSlider来说,实在太小距离了.

混音与Java(不带混合机

  1. Code /bookmarksHtmlEverythingIndexPrj/src/apkg/soundPlay.java

private static void playwav(String file) throws  Exception {

AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(new File(file));

AudioFormat audioFormat= audioInputStream.getFormat();

DataLine.Info info = new DataLine.Info(SourceDataLine.class, audioFormat);

SourceDataLine sourceDataLine = (SourceDataLine) AudioSystem

.getLine(info);

//AudioFormat audioFormat2= new AudioFormat( 70000, 16, 2, true, false);

sourceDataLine.open(audioFormat); //this audioformat can overwrite last  DataLine.Info.audioFormat

sourceDataLine.start();

int cnt;

// 读取数据到缓存数据

byte[] tempBuffer = new byte[10000] ;

while ((cnt = audioInputStream.read(tempBuffer, 0, tempBuffer.length)) != -1) {

if (cnt > 0) {

// 播放缓存数据

sourceDataLine.write(tempBuffer, 0, cnt);

}

}

// Block等待临时数据被输出为空

sourceDataLine.drain();

sourceDataLine.close();

}

API) - IT屋-程序员软件开发技术分享社区.html

Atitit java播放 wav MIXER 混响器编程 目录 1.1. MIXER 混响器编程 1 1.2. 得到系统中一共有多少个混音器设备: 1 1.3. 接口摘要 1 1.4. 调节音量相关推荐

  1. java 下载wav 文件怎么打开,java播放wav文件,该如何处理

    java播放wav文件 用AudioInputStream实现 用application打开 放不出声音,下面提示错误 java.io.IOException: mark/reset not supp ...

  2. windows播放wav声音文件--java播放wav完整demo

    有个新的需求,要java的windows应用发声音,原本说的只是使用蜂鸣器发声音,直接上代码: public static void main(String[] args) {Toolkit tool ...

  3. 7.4 Java(农夫果园【5】:一个农场,专门种植销售各类水果,在这个系统中需要描述下列水果葡萄、草莓、苹果)

    [练习] 题目要求: 项目主题:农夫果园一个农场,专门种植销售各类水果,在这个系统中需要描述下列水果:葡萄:Grape 草莓:Strawberry 苹果:Apple 水果与其他的植物有很大的不同,水果 ...

  4. 7.3 Java(农夫果园【4】:一个农场,专门种植销售各类水果,在这个系统中需要描述下列水果葡萄、草莓、苹果)

    [练习] 题目要求: 项目主题:农夫果园一个农场,专门种植销售各类水果,在这个系统中需要描述下列水果:葡萄:Grape 草莓:Strawberry 苹果:Apple 水果与其他的植物有很大的不同,水果 ...

  5. java播放wav文件没声音_java播放wav文件,该如何处理

    (SoundDemo.java:22) at SoundDemo.main(SoundDemo.java:43) 我的wav文件可以放出来的 代码如下:是摘自一本书上的. import java.aw ...

  6. 关于java播放wav格式音乐问题及代码解释

    修改成wav格式的音乐:使用酷狗的转换格式:(java 可以使用的格式之一) 播放音乐的源代码: 第一个 package com.button.One; import sun.audio.; impo ...

  7. 可编程线性霍尔传感器CHA611/MLX91209在新能源汽车的电量检测系统中的应用

    新能源汽车主要靠电力驱动系统来完成对汽车电机的控制和一些辅助功能的实现,新能源汽车蓄电池组是电力驱动的来源,新能源汽车的电量检测系统则显示了新能源汽车蓄电池组当前的状态,与电力驱动系统的正常运作息息相 ...

  8. 6.30 Java(农夫果园【1】:一个农场,专门种植销售各类水果,在这个系统中需要描述下列水果葡萄、草莓、苹果)

    [练习] 题目要求:项目主题:农夫果园一个农场,专门种植销售各类水果,在这个系统中需要描述下列水果:葡萄:Grape 草莓:Strawberry 苹果:Apple 水果与其他的植物有很大的不同,水果最 ...

  9. 7.1 Java(农夫果园【2】:一个农场,专门种植销售各类水果,在这个系统中需要描述下列水果葡萄、草莓、苹果)

    [练习] 题目要求: 项目主题: 农夫果园 一个农场,专门种植销售各类水果,在这个系统中需要描述下列水果: 葡萄:Grape 草莓:Strawberry 苹果:Apple 水果与其他的植物有很大的不同 ...

  10. 7.2 Java(农夫果园【3】:一个农场,专门种植销售各类水果,在这个系统中需要描述下列水果葡萄、草莓、苹果)

    [练习] 题目要求: 项目主题:农夫果园一个农场,专门种植销售各类水果,在这个系统中需要描述下列水果:葡萄:Grape 草莓:Strawberry 苹果:Apple 水果与其他的植物有很大的不同,水果 ...

最新文章

  1. python 一张图画多条线_Gnuplot.py在一张图上绘制多条线
  2. 前端必须会的基本知识题目
  3. 将长方形木框拉成平行四边形_【减负提质进行时】平行四边形的面积再思考
  4. linux查看锁了的用户,linux – 如何查找Unix用户帐户被锁定的所有方式
  5. 独立开发一个云(PaaS)的核心要素, Go, Go, Go!!!
  6. linux 安装vsftpd服务器,linux安装vsftpd和vsftpd配置步骤
  7. PAT 乙级 1016. 部分A+B (15) Java版
  8. 【数据库原理实验(openGauss)】实验报告
  9. java出现com.lowagie.text。DocumentException:字体“C: \ Windows \ \ simsun字体。带有'Identity-H'的ttc'不被识别的错误
  10. 黑客的google运用技巧
  11. Android 图片设置坐标点
  12. Handler dispatch failed; nested exception is java.lang.OutOfMemoryError: Compressed class space
  13. Ubuntu 18.04 更换阿里源
  14. 数据库基础考点笔记-3
  15. 国家医保的线上支付接口,需要签名算法SM2、加密算法SM4
  16. stata行业变量怎么赋值_Tobit 模型及其Stata实现
  17. modelsim do文件简介及仿真波形分析注意事项
  18. 瞎写 - 如何“免费”在codeforge下载代码
  19. C语言之计算log2
  20. 基于宝塔面板使用 Leanote 搭建自己专属的云笔记

热门文章

  1. excel趋势线公式导出_除了类 Excel, SpreadJS 表格控件还能为系统开发带来什么价值?...
  2. 多选取值_减脂饮食,了解食物GI值
  3. C++ 五课时入门教学
  4. Kubernetes集群管理部署
  5. TOJ1017: Tour Guide
  6. Ruby Fiber指南(五): 实现Actor,兼谈Erlang的process调度
  7. 《OSPF网络设计解决方案(第2版)》一1.4 TCP/IP协议簇
  8. 【Asp.Net】GridView控件中Datakeys和DataKeyNames的说明
  9. Struts2常量配置
  10. Linux进程管理工具