AudioToolbox之AudioFile.h(一)

AudioToolbox很强很暴力,要想把它研究清楚,那是相当的有难度,所以,我当前的目标是,基本弄清楚这些常用的api。最近,做自己的app时,遇到一堆音频相关的问题,发现必须得将AudioToolbox的API好好的学习一下了,那么,AudioFile.h这个文件开始吧:

1,AudioFile.h描述了苹果的 Audio File Services,使用这些服务(C 编程 API),我们可以读或者写多种格式的音频数据到内存或者硬盘。简单的说,就是关于音频文件读写的内容。

---create(创建)、初始化(initialize)、打开(open)、关闭(close)音频文件。

---读(Read)、写(Write)音频文件。

---优化(Optimize)音频文件。

---和用户自己的数据和全局信息一起工作(Work with user data and golobal information)。


2,

 OSStatus  AudioFileCreateWithURL (  CFURLRef   inFileRef,   AudioFileTypeID  inFileType,
                                                             const  AudioStreamBasicDescription *inFormat,
                                                             UInt32  inFlags,   AudioFileID *outAudioFile) 
创建文件,inFileRef是目地路径,inFileType是创建音频文件的格式,inFormat中这个文件的更多详细的信息,inFlags 表示是创建还是打开文件(如果值为kAudioFileFlags_EraseFiles的话,将会移除一个已经存在的文件,然后重新创建;如果没有设置的话,如果url出已经有文件,就会返回失败 ),默认是: kAudioFileFlags_EraseFiles。outAudioFile是这个音频文件的句柄,唯一标识这个音频文件或者音频流。
使用示例:

 AudioFileCreateWithURL((CFURLRef) fileURL,kAudioFileCAFType, &audioStreamDesc, kAudioFileFlags_EraseFile,&audioFile); 

3,AudioStreamBasicDescription 的设置,需要保存一个文件时设置,获取是使用其他接口。
      CAStreamBasicDescription dstFormat;
dstFormat.mSampleRate = myInfo.mDataFormat.mSampleRate;
dstFormat.mChannelsPerFrame = myInfo.mDataFormat.mChannelsPerFrame;
dstFormat.mFormatID = kAudioFormatLinearPCM;
dstFormat.mFormatFlags = kLinearPCMFormatFlagIsPacked | kLinearPCMFormatFlagIsSignedInteger; // little-endian
dstFormat.mBitsPerChannel = 16;
dstFormat.mBytesPerPacket = dstFormat.mBytesPerFrame = 2 * dstFormat.mChannelsPerFrame;
dstFormat.mFramesPerPacket = 1;



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值