iOS背景音频录制

时间:2017-02-03 08:45:27

标签: ios objective-c bluetooth background avfoundation

我知道如果我在前台启动录音会话,在功能中激活音频,Airplay和画中画 - >背景模式;我甚至可以在后台继续录制,但前提是我在前台开始录制会话然后进入后台。

我的问题是我想从后台启动录音会话,这可能看起来很阴暗而不是Apple想要的,但用例是这样的:

我有一个蓝牙LE设备,带有按钮和iOS应用程序。这两个是配对的(蓝牙LE设备和运行iOS应用程序的iPhone),iOS应用程序正在监听蓝牙LE设备上的事件,例如按一下按钮等事件。

现在,当用户点击Bluetooth LE设备上的按钮时,iOS应用程序会捕获该事件,即使应用程序处于后台,我也可以运行代码,但我无法开始录音。 / p>

我的问题是:是否可能?从后台开始录音?即使我们在这里有用户交互,不是在iOS应用程序上而是在蓝牙LE上,所以它不像在后台开始录音并且用户不知道它,他按下蓝牙LE上的按钮设备,他知道他在做什么。

Apple工程师的任何帮助,文档,推文,都会非常感激。感谢。

更新:不需要MFI。 https://mfi.apple.com/MFiWeb/getFAQ.action#1-2

如果您查看以下部分:

"哪些类型的配件和技术不属于MFi计划?"

你会看到:

"仅使用蓝牙低功耗(BTLE)的配件(注意:支持BTLE的HomeKit配件和支持BTLE的MFi助听器是MFi计划的一部分)"

提到,这意味着 MFI 不需要

2 个答案:

答案 0 :(得分:3)

From Apple Documentation

  

连续播放或录制音频的应用程序(即使应用程序是   在后台运行)可以注册执行那些任务   背景。您可以从后台模式部分启用音频支持   Xcode项目中的Capabilities选项卡。 (您也可以启用   通过在音频中包含UIBackgroundModes键来获得此支持   应用程序的Info.plist文件中的值。)播放音频内容的应用程序   背景必须播放听觉内容,而不是沉默。

     

背景音频应用的典型示例包括:

     

音乐播放器应用音频录制应用支持音频或应用的应用   通过AirPlay VoIP应用播放视频

     

对于需要执行更多执行时间的任务,您必须这样做   请求特定权限,以便在后台运行它们   他们被停职了。在iOS中,只允许使用特定的应用类型   在后台运行:

     
      
  • 在后台录制音频内容的应用
  •   

编辑:

还有关于您的"蓝牙设备":

查看ExternalAccessory的文档。

请注意,您需要申请并获得special developer program的批准才能创建外部配件。

答案 1 :(得分:1)

有用的提示::

事实证明,如果您只是将音频多任务标记添加到信息中,Apple的SpeakHere示例代码会进行一些修改,将开始在后台录制音频。您可能会看https://github.com/benvium/SpeakHere获取SpeakHere的更新版本,因为Apple暂时没有更新它。