Java音频(DOC可编).docVIP

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 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()方

文档评论(0)

rewfdgd + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档