标签:
通常为了便于市场推广和获得更高的下载量,产品安装包的体积是越小越好。那么问题来了,要如何才能做到使安装包的体积最小化呢。根据产品的组成成分,最终可以大概分为,代码,图片,视频,音频等这几部分,今天我们就以iOS平台为例从音频这块入手,看如何使安装包的体积最小化。
我们知道每个音频文件都是由两部分内容所构成:
[1].文件格式(或音频容器)
文件格式(或音频容器)是用于形容文件本身的格式。我们可以通过多种不同的方法为真正的音频数据编码。iPhone支持许多文件格式,包括MPEG-1(.mp3),MPEG-2 ADTS(.aac),AIFF,CAF以及WAVE。
[2]. (或音频编码)
这么多种文件格式,与数据格式我们该选择哪种呢?通常情况下我们都会选择CAF,因为它能够同时包含所有iPhone所支持的编码(数据格式),并且它也是iPhone中的优先文件格式选择。
现在我们产品中用的都是MP3,如何方便快速的全部转换为CAF,苹果真的是太人性化了,早就为我们准备了三个内置命令行工具:afplay,afconvert以及afinfo,我们要用到的就是afconvert。当然我们还可以用iTunes来转换但是太麻烦了.
iTunes 操作:
[1].进入iTunes偏好设置
[2].进入导入设置
[3].选择编辑器(AAC),并按需求进行比特率选择
[4].转换音频
命令行工具 afconvert:
# test.mp3转换成test.caf 了,并设置了比特率位 57623 (56kbps) afconvert -d aac -f caff -b 57623 /User/XXX/test.mp3 /User/XXX/test.caf
一个个文件转换太麻烦了,有没更方便的,如直接把某个目录下的所有mp3 转化成 caf? 有的这就为你奉上。
#!/bin/sh function scandir() { local cur_dir parent_dir workdir workdir=$1 cd ${workdir} if [ ${workdir} = "/" ] then cur_dir="" else cur_dir=$(pwd) fi for dirlist in $(ls ${cur_dir}) do if test -d ${dirlist};then cd ${dirlist} scandir ${cur_dir}/${dirlist} cd .. else file=${cur_dir}/${dirlist} # echo file filename=${file%.*} suffix=${file##*.} if [ "${file##*.}" = "mp3" ] then afconvert -d aac -f caff -b 57623 $file "$filename.caf" echo "${file} --> caf 转换完成。。。" rm -rf "$file" else echo ‘不是MP3文件‘ fi fi done } if test -d $1 then scandir $1 elif test -f $1 then echo "请输入一个文件..." exit 1 else echo "该目录已经存在..." exit 1 fi
复制保存为xxx.sh,大功告成,只需在终端执行即可。
就这样子,一键无痛的将目录下地所有mp3 转换成 caf了。
本站文章为 宝宝巴士 SD.Team 原创,转载务必在明显处注明:(作者官方网站: 宝宝巴士 )
转载自【宝宝巴士SuperDo团队】 原文链接: http://www.cnblogs.com/superdo/p/4783380.html
标签:
原文地址:http://www.cnblogs.com/superdo/p/4783380.html