Android 音频开发
Posted Just_Paranoid
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 音频开发相关的知识,希望对你有一定的参考价值。
常见音频文件格式
MP3、FLAC、WAV、AAC、M4A、OGG、WMA、APE、AMR、M4R、MP2、WV、AIFF、OPUS、RA、AU
常见的无损格式有ape,wav,flac三种,而aac只能算高品质而已。其优缺:所有的无损格式本质都是wav的压缩,在播放时会转回wav。因此直接播放wav有助于节约内存,亦更流畅。但缺点是文件过大,一般在30兆以上。而ape和flac相对较小
格式 | 编解码器 |
---|---|
wma | Windows Media Auido 2、MPEG ACC Audio |
wav | PCM S16 LE |
au | PCM S16 BE。AU这是为UNIX系统开发的一种音乐格式,和WAV非常相像,在大多数的音频编辑软件中也都支持它们这几种常见的音乐格式。 |
aiff | PCM S16 BE、PCM S16 LE |
ra | RealAudio 1.0 |
opus | Opus Audio |
ogg | Vorbis Audio |
mp2 mp3 | MPEG Audio layer 1/2 |
m4r | MPEG ACC Audio |
amr | AMR narrow band |
wv | WavPack是 David Bryant 开发的一个自由、开放源代码的无损音频压缩格式 |
ape | Monkey’s Audio是一种无损压缩技术的软件,常被用来解压缩APE格式的无损音乐文件,APE是流行的数字音乐文件格式之一。与有损音频压缩(如MP3、Ogg Vorbis或者AAC等)不同的是,Monkey’s Audio压缩时不会丢失数据。 |
flac | FLAC是一个完全公开、完全免费的音频格式,没有版权,任何人都有权随意使用,不用担心因为使用了FLAC格式而造成侵权。 |
音频测试文件下载
https://docs.espressif.com/projects/esp-adf/en/latest/design-guide/audio-samples.html
在线音频转化工具
https://convertio.co/zh/audio-converter/
mplayer官网提供测试文件
http://samples.mplayerhq.hu/
VLC媒体播放器(支持超多编码)
https://www.videolan.org/vlc/
FFmpeg 开源编解码库
https://github.com/FFmpeg/FFmpeg
Android音频开发:音频基础知识
一、Android音频开发(一):音频基础知识
二、Android音频开发(二):录制音频(WAV及MP3格式)
三、Android音频开发(三):使用ExoPlayer播放音频
四、Android音频开发(四):音频播放模式
五、Android音频开发(五):感应(息屏/亮屏)管理
附GitHub源码:MultimediaExplore
1、采样频率:
一秒钟内采样的点(次)数称为采样频率,采样频率越高越接近原始信号。常用的音频采样频率有:8kHz、16kHz、44.1kHz、96kHz、192kHz等。
2、采样位宽【采样精度 / 位深度】:
采样位数就是采样值用多少位0和1来表示,也叫采样精度,用的位数越多就越接近真实声音。 常见的位宽有:8bit 或者16bit。
3、声道:
语音一般只有一个声道,音乐有两个声道,环绕立体声可以有多个声道。
4、编解码:
音频采样过程也叫做脉冲编码调制编码,即PCM(Pulse Code Modulation)编码。
编码过程:模拟信号->抽样->量化->编码->数字信号.
5、压缩:
<1>无损编码:如能够达到最高保真水平的就是PCM编码、WAV格式。
<2>有损编码:如MP3格式.
MP3格式是按1:12压缩保存的,所以MP3格式大小等于WAV的1/12。
6、码率:
又称为比特率,是指一个音频流中每秒钟能通过的数据量。
码率 = 采样频率(44.1k)* 采样位数(16)* 声道个数(2)= 1411.2kbps。
知道音频码率后,可求得整个音频文件的大小=时长(300s)*码率(1411.2)/1024/8=51.67M。
7、常用音频格式:
<1>WAV格式:音质高 无损格式 体积较大。
<2>AAC格式:相对于 mp3,AAC 格式的音质更佳,文件更小,有损压缩。
<3>AMR格式:压缩比比较大,但相对其他的压缩格式质量比较差,多用于人声,通话录音。
<4>mp3格式:特点 使用广泛,有损压缩,牺牲了12KHz到16KHz高音频的音质。
以上是关于Android 音频开发的主要内容,如果未能解决你的问题,请参考以下文章
Android音视频开发学习MediaCodec API,完成音频AAC硬编硬解