aac是音频格式
我们提供的服务有:成都网站制作、成都网站设计、外贸营销网站建设、微信公众号开发、网站优化、网站认证、梅州ssl等。为成百上千企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的梅州网站制作公司
找个支持该格式的软件就行了
比如说天天动听等等
下面是相关参数的代码段。看清楚了,是在Android 2.2 SDK 包去实现支持 AAC 音频录制的。在Android 2.3.3 包下,这段代码是可以写成这样的:[mw_shl_code=java,true]mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);[/mw_shl_code]但是要兼容这个2.2系统的问题!!!![mw_shl_code=java,true]/* ①Initial:实例化MediaRecorder对象 */ mMediaRecorder = new MediaRecorder(); /* ②setAudioSource/setVedioSource */ mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);// 设置麦克风 /* * ②设置输出文件的格式:THREE_GPP/MPEG-4/RAW_AMR/Default * THREE_GPP(3gp格式,H263视频 * /ARM音频编码)、MPEG-4、RAW_AMR(只支持音频且音频编码要求为AMR_NB) */ mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT); /* ②设置音频文件的编码:AAC/AMR_NB/AMR_MB/Default */ mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); /* ②设置输出文件的路径 */ try { mRecAudioFile = File.createTempFile(strTempFile, ".mp3", mRecAudioPath); } catch (Exception e) { e.printStackTrace(); }[/mw_shl_code]
如果是应用的话,直接设置MediaPlayer setDataSource设置为网络音频的uri,然后prepareAsync(), prepare完成后调用start。framework层的话还是要用aacdecoder进行解码播放,要么用软件解码,要么用硬件解码。
多米音乐支持aac格式音频文件!
AAC(Advanced Audio Coding),
中文称为“高级音频编码”,出现于1997年,基于 MPEG-2的音频编码技术。由Fraunhofer IIS、杜比实验室、ATT、Sony(索尼)等公司共同开发,目的是取代MP3格式。2000年,MPEG-4标准出现后,AAC 重新集成了其特性,加入了SBR技术和PS技术,为了区别于传统的 MPEG-2 AAC 又称为 MPEG-4 AAC。
Advanced Audio Coding。一种专为声音数据设计的文件压缩格式,与Mp3不同,它采用了全新的算法进行编码,更加高效,具有更高的“性价比”。利用AAC格式,可使人感觉声音质量没有明显降低的前提下,更加小巧。
早在1987年,Fraunhofer IIS就开始了“EUREKA project EU147, Digital Audio Broadcasting (DAB)”的研发,而这就是MP3的前身。通过和Dieter Seitzer教授的合作,他们开发出了著名的ISO-MPEG Audio Layer-3压缩算法。1993年这个算法被整合到MPEG-1标准中,从此MP3被投入使用。1996年底Fraunhofer IIS在美国获得MP3的专利,并在1998年对外声明将收取MP3专利使用费。而从1999年开始,MP3格式开始广泛行起来,特别是出现了很多免费提供MP3的音乐网站,MP3随身听也像洪水般涌进市场,种种因素促使MP3成为了极其主流的音频格式。尽管之后有VQF、WMA等挑战者,但MP3牢固的根基使它至今仍稳稳地坐在老大的位置上。
但是音频格式就像电脑软硬件一样,终归要更新换代的,像磁带不是被CD淘汰了吗?而CD也将要被DVD-Audio所代替。随着时间的推移,MP3越来越不能满足我们的需要了,比如压缩率落后于Ogg、WMA、VQF等格式,音质也不够理想(尤其是低码率下),仅有两个声道……于是Fraunhofer IIS与ATT、索尼、杜比、诺基亚等公司展开合作,共同开发出了被誉为“21世纪的数据压缩方式”的Advanced Audio Coding(简称AAC)音频格式,以取代MP3的位置。其实AAC的算法在1997年就完成了,当时被称为MPEG-2 AAC,因为还是把它作为MPEG-2(MP2)标准的延伸。但是随着MPEG-4(MP4)音频标准在2000年成型,MPEG-2 AAC也被作为它的编码技术核心,同时追加了一些新的编码特性,所以我们又叫MPEG-4 AAC(M4A)。
这几天在 android上的音频项目,顺便把用到的aac编解码库封装了一下,有需要的可以从上面下载。当然是没有本事自己写编解码器的,还是用FFmpeg + FDK_aac来做。下面介绍一下其java接口的使用。java库见libaac.jar文件,把libaac.jar加到 libs目录下,把libaac.so加到 libs/armeabi目录即可使用。
AAC编码:
(1) 创建一个Encoder对象作为成员变量
aac.Encoder encoder;
(2) 初始化它
encoder = new aac.Encoder();
if(! encoder.open(11025, 1))
{
Log.d("mylog", "failed to open encoder !\n");
encoder = null;
}
这里要指定输入音频源(PCM格式)的sampe_rate和channel个数,如果为CHANNEL_OUT_MONO,则channel=1,否则为2。 sample_rate一般设置为11025,因为手机性能有限,设置太高的话也处理不过来,而且处理人声的话11025也是足够了。
(3) 编码
把接收到PCM数据交给encoder来处理即可,要求输入源为ENCODING_PCM_16BIT,即每个sample是16BIT的。这个encoder对象内有2个缓冲区:inbuf, outbuf。显然,在编码时,inbuf就是用于存储接收到的PCM数据,outbuf就是存编码后得到的数据。
int out_size = encoder.encode(in_size);
其返回值out_size,表示在outbuf里的有效数据长度。此时可以把outbuf里的aac数据通过网络发送或其他用途。
其中,用户需要知道encoder每次处理多长的数据,即一个frame的大小。对于单声道MONO来说,每次应该输入2048byte的数据。对于双声道STEREO来说,应该输入4096byte的数据。下面这一行可以根据声道数来计算输入的frame的大小:
int in_size = aac.Encoder.frameSize(1);
AAC解码:
(1) 创建一个Decoder对象作为成员变量
aac.Decoder decoder;
(2) 初始化
decoder = new aac.Decoder();
if( ! decoder.open())
{
Log.d("mylog", "failed to open decoder !\n");
decoder = null;
}
(3) 解码
Decoder对象也有inbuf和outbuf,把待解码的aac frame放到inbuf里
int pcm_size = decoder.decode(aac_size);
解得到数据在outbuf里,其有效长度为上述函数的返回值pcm_size,此时可以把outbuf里的PCM数据取出来播放或其他用途。
Advanced Audio Coding (AAC), 是高保质的音效保存方式。
AAC 制式在相同的压缩度下, 比较常见的MP3拥更高保质度。
安卓手机要播放AAC文件, 建议下载使用能兼容ACC制式的Music Player应用。
例如 : GoneMAD Music Play, Media Player, Player Dream...等等
文章题目:关于aacandroid的信息
转载源于:https://www.cdcxhl.com/article14/dsdphge.html
成都网站建设公司_创新互联,为您提供App设计、域名注册、建站公司、关键词优化、品牌网站设计、App开发
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联