Background audio processing

Hello,


We are currently evaluating the possibility to port our Android app “SoniControl” to iOS. SoniControl is an ultrasonic firewall. It records audio in the background and looks for ultrasonic messages (e.g. Google Nearby messages) in the audio signal in the frequency range from 17-22kHz. Frequencies below 17kHz are removed by a bandpass filter. In case a message is detected, the app offers the user the option to block it. The main goal is to raise awareness and inform users about apps that use “data-over-sound” technologies like Google Nearby or Lisnr. These technologies use the microphone and loudspeaker of a smartphone to receive or send data over audio. Our current users let the app run in the background all day long, we show a notification in the status bar to remind them that it is running and is using battery (on iOS the status bar would turni red as when you use the Voice Memo app in the background).


Before implementing the firewall for iOS we want to ask the following questions:

  • Is background audio processing as we need it a valid use case for the Audio Background Mode?
  • Would we get the necessary permissions for an iOS version of SoniControl (i.e. start capturing audio in the foreground, keep doing it in the background, searching for anomalies, with the status bar turning red)?
  • What are your thoughts on our use case?


Here is what I found so far:


Many people contacted us in the past and asked if an iOS version of SoniControl is available. There seem to be a large demand from the iOS user community and we hope that we can soon provide them with a solution.


Best regards,

Alex

Accepted Reply

Is background audio processing as we need it a valid use case for the Audio Background Mode?

Only App Review can give you a definitive answer to questions as to what will or won’t be allowed on the store.

Would we get the necessary permissions for an iOS version of SoniControl (i.e. start capturing audio in the foreground, keep doing it in the background, searching for anomalies, with the status bar turning red)?

I’m not sure whether this is a technical question or a restatement of your business question. At a technical level, the approach you’re suggesting (starting a record session in the foreground and continuing it in the background) should work just fine. It’s no different from the various voice recorder apps out there.

Share and Enjoy

Quinn “The Eskimo!”
Apple Developer Relations, Developer Technical Support, Core OS/Hardware

let myEmail = "eskimo" + "1" + "@apple.com"

Replies

Is background audio processing as we need it a valid use case for the Audio Background Mode?

Only App Review can give you a definitive answer to questions as to what will or won’t be allowed on the store.

Would we get the necessary permissions for an iOS version of SoniControl (i.e. start capturing audio in the foreground, keep doing it in the background, searching for anomalies, with the status bar turning red)?

I’m not sure whether this is a technical question or a restatement of your business question. At a technical level, the approach you’re suggesting (starting a record session in the foreground and continuing it in the background) should work just fine. It’s no different from the various voice recorder apps out there.

Share and Enjoy

Quinn “The Eskimo!”
Apple Developer Relations, Developer Technical Support, Core OS/Hardware

let myEmail = "eskimo" + "1" + "@apple.com"

Thank you. I cannot find anymore the documentation on starting recording in the background. Is it technically not possible (e.g. the system stops the app earlier, because it was neither playing nor recording for a while) or is it not allowed by the App Review ?


I realized we might have to adapt our workflow for iOS as in Android when the user choses to block a signal, the blocking might continue in the background (playing white noise at unaudible frequencies) and once finished, the recording starts again. I hope we can explain the background blocking with a video showing the spectrogram of what is being played.


Best regards,

Alex

I cannot find anymore the documentation on starting recording in the background. Is it technically not possible … ?

That’s a surprisingly complex question, and one that I’m not really qualified to answer )-: My understanding is that, under some circumstances, it was possible to start a recording session in the background prior to iOS 12.x (where x is 3 or 4).

If you need a definitive answer about the technical aspects of this, you should open a DTS tech support incident and talk to my colleague, who tracks this issue for DTS. Be warned, however, that we are not able to answer App Review policy questions.

Share and Enjoy

Quinn “The Eskimo!”
Apple Developer Relations, Developer Technical Support, Core OS/Hardware

let myEmail = "eskimo" + "1" + "@apple.com"

prior to iOS 12.x (where x is 3 or 4)

I pinged a colleague about this and they confirmed that the change was in 12.4.

Share and Enjoy

Quinn “The Eskimo!”
Apple Developer Relations, Developer Technical Support, Core OS/Hardware

let myEmail = "eskimo" + "1" + "@apple.com"

Thank you for your help! We will redesign accordingly.


Best regards,
Alex