- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java音频(DOC可编).doc
17.3.3 音频的数据格式
音频数据——也就是从TargetDataLine输入或从SourceDataLine输出的数据,必须符合音频格式的标准。音频数据的格式选项由AudioFormat类封装,主要选项包括:编码方式(可以是PCM(Pulse Code Modulation,脉冲编码调制)、MP3等)、通道数量、取样率、帧速率等。
根据不同的参数,AudioFormat提供了3个构造函数
public AudioFormat(AudioFormat.Encoding encoding,float sampleRate,int sampleSizeInBits,int channels,int frameSize,float frameRate,boolean bigEndian);
public AudioFormat(AudioFormat.Encoding encoding,float sampleRate,int sampleSizeInBits,int channels,int frameSize,float frameRate,boolean bigEndian,MapString,Object properties);
public AudioFormat(float sampleRate,int sampleSizeInBits,int channels,boolean signed,boolean bigEndian);
其中的变量意义如下。
? encoding:音频编码。
音频编码的常见类型是脉冲编码调制(PCM),它只是声音波形的线性(比例)表示形式。有了 PCM,每个样本中存储的数字都与该时间点上的声压瞬时振幅成比例。这些数字通常是有符号的或无符号的整数。除了 PCM 外,其他编码还有 mu-law 和 a-law,它们是常用于记录语音的声音振幅的非线性映射。
取得编码类型的类为AudioFormat.Encoding,该类包含了4个静态变量的类型:
static AudioFormat.Encoding ALAW; //指定a-law编码数据
static AudioFormat.Encoding PCM_SIGNED; //指定有符号的线性PCM数据
static AudioFormat.Encoding PCM_UNSIGNED; //指定无符号的线性PCM数据
static AudioFormat.Encoding ULAW; //指定u-law编码数据
如果不指定该变量,则默认使用线性PCM编码。
? sampleRate:每秒样本数。即取样率,表示每一秒钟取样的频率,可选值有8000、11025、16000、22050、44100。比如对于8000,表示每一秒钟会取样8000次,也就是采集8000次声音。
? sampleSizeInBits:每个样本中的位数。可以为8bit和16bit,即每一个声音样本使用8bit或16bit数据表示。
? channels:声道数(单声道为 1,立体声为2……)。
? frameSize:每帧包含的字节数。
? frameRate:每秒帧数。
? bigEndian:指是否以big-endian字节顺序存储数据(false意味着little-endian)。
? properties:包含格式属性的MapString,Object 对象。
例如下例所示,使用第3个构造函数创建了一个音频格式对象:
float sampleRate = 16000.0F; //8000,11025,16000,22050,44100
int sampleSizeInBits = 16; //8,16
int channels = 1; //1,2
boolean signed = true; //true,false
boolean bigEndian = false; //true,false
AudioFormat audioFormat = new AudioFormat(sampleRate, sampleSizeInBits, channels, signed, bigEndian);
17.3.4 音频的录制
创建了音频格式对象后,就可以使用该格式进行录音了。音频的录制需要经过以下的6步。
(1)取得输入设备信息。
创建了音频数据格式对象后,就可以根据该对象取得输入设备信息DataLine.Info:
DataLine.Info dataLineInfo = new DataLine.Info( TargetDataLine.class, audioFormat);
(2)取得输入设备。
根据该设备信息,使用AudioSystem的getLine()方
您可能关注的文档
最近下载
- 聚焦数学核心素养 让量感在课堂上有序生长——以“课桌有多长”为例-来源:理科爱好者(教育教学版)(第2022002期)-成都大学.pdf VIP
- 科学家郭永怀个人事迹(7篇).docx
- 医院培训课件:《外周血形态学检验人员能力比对考核体系的建立与应用》.pptx
- 电子商务法律法规考试试题与答案.docx
- 前期物业管理物资清单.doc
- (高清版)BT 9790-2021 金属材料 金属及其他无机覆盖层的维氏和努氏显微硬度试验.pdf VIP
- 关于深入落实电价优惠和公共资源开放加快山东省5G基站建设的通知.pdf
- 最新高中英语教学设计.doc
- 五三天天练二年级语文电子版.docx
- 中等职业学校美术绘画专业人才培养.docx
文档评论(0)