unity获取麦克风音量_iOS Audio 手把手: 录音、播放、音频播放控制(音量采样检测等),Swift5...

797c07e2bc0bd9715e585a32d1307477.png

录音,就要用到麦克风了

iOS 设备中,每一个应用 app,都有一个音频会话 Audio Session.

app 调用音频相关,自然会用到 iOS 的硬件功能。

音频会话 Audio Session ,就是来管理音频操作的。

iOS 使用音频,管理粒度很细

你觉得: 后台播放的音乐,要不要与你 app 的音频,混杂在一起?

Audio Session 处理音频,通过他的分类 Audio Session Category 设置

默认的分类,

1, 允许播放,不允许录音。

2, 静音按钮开启后,你的应用就哑巴了,播放音频没声音。

3, 锁屏后,你的应用也哑巴了,播放音频没声音。

4, 如果后台有别的 app 播放音频,你 app 要开始播放音频的时候,别的 app 就哑巴了。

更多分类,如图:

3ee404543a6978abe39827975efc9dc5.png

首先要对音频操作,做一些配置。

一般操作音频,会用到 AVFoundation 框架,先引入 import AVFoundation

设置 Audio Session 的分类,AVAudioSession.CategoryOptions.defaultToSpeaker , 允许我们的 app , 调用内置的麦克风来录音,又可以播放音频。

这里要做录音功能,就把分类的选项也改了。

分类的默认选项是,音频播放的是收听者,即上面的喇叭口,场景一般是你把手机拿到耳朵边,打电话。

现在把音频播放路径, 指向说话的人,即麦克风,下面的喇叭口。

// 这是一个全局变量,记录麦克风权限的
    var appHasMicAccess = true

   // ... 

      //  先获取一个 AVAudioSession 的实例
      let session = AVAudioSession.sharedInstance()
        do {
            // 在这里,设置分类
            try session.setCategory(AVAudioSession.Category.playAndRecord, options: AVAudioSession.CategoryOptions.defaultToSpeaker)
            try session.setActive(true)
           // 检查 app 有没有权限,使用该设备麦克风
            session.requestRecordPermission({ (isGranted: Bool) in
                if isGranted { 
                   // 你的 app 想要录制音频,用户必须授予麦克风权限
                    appHasMicAccess = true
                }
                else{
                    appHasMicAccess = false
                }
            })
       } catch let error as NSError {
            print("AVAudio
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值