序中经常使用 .WAV 的音效文件,虽然可以直接使用它,但是最好转换为 apple 推荐的 .CAF 格式。
这个时候我们就可以使用 afconvert 命令。其基本的语法如下:
用 -d 指定频率格式
- { -d | --data } data_format[@sample_rate_hz][/format_flags][#frames_per_packet] :
- [-][BE|LE]{F|[U]I}{8|16|24|32|64} (PCM)
- e.g. BEI16 F32@44100
- or a data format appropriate to file format
可以指定的 .WAV 文件格式有以下5种:
- UI8 LEI16 LEI24 LEI32 LEF32
比如 -d LEI16@22050 就代表 16位 22050Hz。
另外可以用 -c 指定声道。用 -f 指定格式。比如:
- $afconvert -f WAVE -d LEI16@22050 -c 1 < destinate file >
比如改变当前目录及子目录下的 .wav 文件格式,如下命令:
- $find . -name '*.wav' -exec afconvert -f WAVE -d LEI16@22050 -c 1 {} \;
如果要转换为用 ima4 压缩的 .caf 文件则用下面的命令:
- $find . -name '*.wav' -exec afconvert -f caff -d ima4 {} \;
其中支持的格式如下所示:
- { -f | --file } file_format:
- .......
- 'caff' = Apple CAF (.caf)
- data_formats: '.mp1' '.mp2' '.mp3' 'MAC3' 'MAC6'
- 'QDM2' 'QDMC' 'Qclp' 'Qclq' 'aac ' 'aacl'
- 'agsm' 'alac' 'alaw' 'drms' 'dvca' 'dvi '
- 'dvi8' 'ilbc' 'ima4' 'lpc ' I8 BEI16
- BEI24 BEI32 BEF32 BEF64 LEI16 LEI24
- LEI32 LEF32 LEF64 'ms\x00\x02' 'ms\x00\x11' 'ms\x001'
- 'ms\x00U' 'samr' 'ulaw' 'vdva'