
为什么audioFormatgetChannels(), 一次后还要再一个audioFormatgetChannels()2
每声道每帧字节数2字节,再加上双声道所以用声道数(2)字节数(2) = 每帧的总字节数
看来你的audioFormat不是从AudioInputStream中产生的啊?刚才回答你的问题我还没注意。原来audioFormat也可以new出来的啊,嘿嘿。
JAVA声音
API进一步描述三种设备子界面:
InputDevice
InputDevice界面提供一个方法getInputChannel来获得一个InputChannel对象,从中捕获可读的音频数据。
OutputDevice
OutputDevice界面提供一个方法getOutputChannel来获得一个OutputChannel对象,音频数据可以写入该输出通道,并予播放。
Mixer
Mixer支持多个InputChannel和/或Clip。
另外,它提供了查询方法,从中可得到它所支持的通道数量,它也提供了支持同步暂停和唤醒多个通道播放的方法。
控件
通道和音频端口
(比如扬声器和麦克风)一般能支持一组控件比如增益和定位。通过将它的类作为参数传给getControl()方法,JAVA声音
API的通道对象和端口对象可以获得一个特别的控件。
编码器
Codecs可以对音频数据编码和解码,允许在不同格式和编码之间转换。JAVA声音
API通过AudioSystem类中的方法为这些转换提供了高级接口。如果给了一个特殊的
音频流
,应用程序会查询音频系统来找到相应的转换,从而得到指定格式的音频流。
文件和流
音频流是与音频数据格式和数据长度相关的
输入流
,
文件流
是与文件类型和数据长度相关的输入流。JAVA声音
API在AudioSystem类中为音频文件和音频流之间的转换提供了接口。
查询和访问安装组件
AudioSystem类充当到采样音频系统资源入口的角色。该类允许程序员查询和访问输入设备、
输出设备
以及安装好的混音设备。另外,AudioSystem包含许多在不同音频数据格式间转换的方法。它也提供一些方法,使得在不需要对设备直接 *** 作的情况下,直接获得输入通道或输出通道。
你可以试试做
用io流吧 使用字节流 把两个文件先后读取然后存放到一个文件中就可以了
使用ByteArrayInputStream流对象来读取数据
使用ByteArrayOutputStream流对象来写数据
以上就是关于java音频处理问题全部的内容,包括:java音频处理问题、怎么通过C#或JAVA得到从麦克风得到声音或它的声频文件、用java代码将两段音频拼成一段等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)