Do mobile apps always indicate when they record audio? - android

In iOS and in the latest Android version, there is always a persistent notification on the screen when apps access the microphone while running in the background. This makes perfect sense, since mobile users could be secretly eavesdropped on otherwise.
I am wondering whether apps that are active, i.e. in the foreground, are also required to visibly indicate when they are using the microphone. For example, the "rec" button in my recorder app turns red while it is recording. But could the app also use its mic permission and record audio without showing me any visible indication if it wanted to? Or is there anything in iOS or Android prohibiting this? I couldn't find anything in the documentation.

I believe once permission is granted in Android, app is able to record using mic without showing anything on the screen. Can't speak for iOS.

Related

How To disable system settings automatically while playing music in Android

This question is for anyone who knows about audio on Android devices.
We need an Android app for auditory training.
In this app, individualised music is downloaded for each user and then listened to for a while for trining purposes.
It is essential that this music is played unchanged, i.e. without the influence of equalisers, room sound, bass amplification, etc.
Is there a way to bypass the system audio settings in the app or to deactivate them automatically?
Different manufacturers seem to handle the system audio settings somewhat differently. We have noticed differences between Samsung, Google, Sony, Motorola, OnePlus, Redmi.
Therefore, it might make the most sense to bypass the system audio within the app.
We have made attempts with CONTENT-TYPE and USAGE_ because we had the hope that USAGE_VOICE-COMMUNICATION would bypass the equalisers. But that doesn't work and some manufacturers seem to activate compressors or noise reduction, which degrades the quality of the music.
So far we are working with the integrated player.
Does a self-programmed player make a difference?
Does anyone know a solution?
Thank you!

Flutter (Screen recorder) Securing Music stream App, IOS & Android

Is there a flutter solution to securing music app from screen recorder (Even the app runs in the background), like apple music app did, stop the music when you start screen recorder. We have tried windowmanager package & secure application but no one works in IOS.
We have a mobile app to stream music, the app implement in-app purchase, every song should be bought before listening, and the content is exclusive for the app. that's why we need to secure the app, we have searched a lot for flutter packages and native implementations but we haven’t find a solution for IOS specific .
You should implement this natively for iOS.
Use isCaptured property in UIScreen to know if screen recording is happening (you can do this for iOS 11+)
You can use Key-Value Observing to know when isCaptured changes
Apple says:
To prevent the system from recording the audio portion, observe the isCaptured property and take appropriate action in your app as described...
see the documentation
EDIT:
I've found this library flutter_forbidshot it is helpful, and I think it is suitable for this problem.

Sharing audio(Mic) input to multiple apps in Android

As per official documentation
Android 10 (API level 29) and higher imposes a priority scheme that can switch the input audio stream between apps while they are running. In most cases, if a new app acquires the audio input, the previously capturing app continues to run but receives silence. In some cases, the system can continue to deliver audio to both apps. The various sharing scenarios are explained below.
Other than some special cases, audio is not shared between apps.
But I have seen many apps sharing the audio input without being in the above special cases.
For eg. Zoom, when I'm on a call in zoom and start an audio recorder then both the apps are getting audio though zoom audio decreases in intensity.
Similarly, Omlet arcade is able to record mic audio even when mic access is given to other apps.
How is it possible? And as per the documentation, this shouldn't be allowed.
Update:
Was able to achieve it with the usage of Oboe. But it is not consistent on all devices. This also causes a sync issue in my live streaming app. Audio is audible with a delay
This is not possible in Android 5+ . You need a rooted phone to perform this action. In Omlet Arcade Whenever you play a Game and switch ON in-game mic, Omlet Arcade will stop receiving any audio input. However, Omlet Arcade will still function but you have to restart it in order to get voice input back.
Though, in a recent MIUI bug, People were able to listen to calls on Zoom and in-game mic apps. In your case, it might be not official Android and Edited Android like MIUI and OxygenOS

Record call for speaker (one side) only

I use:
MediaRecorder.setAudioSource(int)
or
AudioRecord.Builder.setAudioSource(int)
record both voice in call.
I need to know that record call for caller only, mean could't record my voice in the call (voice from mic) possible or not.
Recording only caller's voice could not well supported on all devices/implementations.
Moreover this behaviour could change from one Android version to another according to what Manufacturers want to open their devices.
Many devices can record only BOTH streams, others can record only from MIC...
Starting from Android 7.1 Nougat up to 8.1 it is not possibile to record Voicecalls if the App is not signed using the System Certificate, so only System App developed by the Vendor could record voicecalls.
Few bugs were discovered in these years to let the developer records even if the System denies it, but those remains quite secrets to few developers.
However to record only called voice you have to set the Source as "AudioSource.VOICE_DOWNLINK".

Realtime Audio Convolution on Android

I'm trying to design an Android app that will start a service which applies a reverb (using convolution) to any audio played through the phone regardless of the app the audio is coming from. The service would ideally run in the background and enable the reverb effect as soon as audio begins to play on the device.
Is something like this possible on a non rooted Android device, and if it is, where's the best place to get started?
Thanks
It is not possible without root access.
There is some example of real time convolution such as viper4android fx though it uses linux native driver to achive the problem.

Categories

Resources