iOS音频

一、音效播放 System Sound Service

播放限制:

  • 音频时间不能超过30秒 如果需要播放时长较长的音频无法满足
  • 音频文件格式有限制(caf、ait、wav、mp3)
  • 音效播放使用的是System Sound Service,只需要向系统注册,系统会播放此音效。需要对音频有精确的控制则System Sound Service就无法满足了

导入框架

AudioToolbox.framework

代码

  • 注册音效 获取音效id

    • AudioServicesCreateSystemSoundID()
  • 播放音效

    • AudioServicesPlaySystemSound
    • AudioServicesPlayAlertSound(带震动)
  • 如果需要监听播放完成操作

    AudioServicesAddSystemSoundCompletion

二、播放本地音乐 AVAudioPlayer

播放限制

  • 只能播放本地文件,也就是沙盒中或者工程中的音频文件
  • 加载的URL也只能是File URL而不是HTTP URL

导入框架

AVFoundation.framework

代码

  • 创建
    • 根据文件URL创建AVAudioPlayer
    • 设置循环次数为0
    • 设置代理
    • 加载文件至缓存
  • 开始播放
    • 1
  • 暂停
  • 播放进度,不支持 定时器控制

三、录音

导入框架

AVFoundation.framework

代码

  • 创建AVAudioRecorder对象
    • 构建录音文件完成后保存路径
    • 构建录音设置
    • 根据路径和设置构建AVAudioRecorder对象
    • 设置代理
      • 实现录音完成的协议方法
    • 设置监控声波
  • 开始录音
    • 开始录音
  • 开启定时器 监控声波
    • 读取当前声波测量值
    • 使用录音器对象从某个声道中取音频强度,范围: -160~0
  • 暂停录音
    • 暂停 pause
  • 恢复录音
    • 开始录音record 音频会话会自动帮助我们记录上次录音位置并追加录音
  • 停止录音
    • 停止stop

四、音频服务队列(本地和网络)

系统框架:

AudioToolBox.framework

概况

由于框架内部处理流程复杂,提供的接口API都是C函数,不友好,所以推荐使用优秀的第三方库。

如果想要深究其原理,可以参考第三方库:AudioStreamer、FreeStreamer 因为前者代码版本较早不支持ARC,所以建议后者

FreeStreamerGithub地址

转载于:https://my.oschina.net/KeepDoing/blog/1058160

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值