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!
Related
Whenever I go to sleep, I always have a playlist of YouTube videos playing in the background (on my phone, not a computer or TV). There are several videos or series that I would love to add to my "background noise" playlist; unfortunately, the volume itself on the audio wavers far too much, to the point that the volume I set on my phone is either too high that it risks waking me up shortly after falling asleep, or too low that I cannot hear half of the video.
I have tried searching through various apps on the Google Play Store, but it seems most of them try to equalize volume based on frequency (such as treble and bass), and not intensity (in decibels). I am looking for an app (or if it exists, a setting in my phone) where I can set a limit of __ to __ decibels, and all audio coming out of my phone will be within that range (similar to noise gating but with output instead of input).
If anyone has a solution or app out there that would fit this description, please do let me know. Thank you in advance!
I have tried browsing around in the audio settings on my Galaxy S22+ but have not seen anything that would help. I have also downloaded about 5 or 6 different equalizer apps, but again, they all were based on frequency and not intensity/volume itself.
So using openvidu to setup two way calling but I noticed an issue when it’s being used on an android device.
The android phone has multiple volume controls, one of them is the media volume, so if the user watching as a subscriber has their media volume low they can’t hear the publisher speaking until they turn it up, and a few people don’t even know this exists.
By default the volume up hardware button seems to control the phone volume, or rather it seems to control the last one that was used.
It’s a little concerning that many people won’t know about this and will complain they can’t hear anything, unlike on the iPhone where the one button controls the overall volume.
I doubt this is possible but are we able to increase the android media volume
With JavaScript somehow? I very much doubt it but I’m not sure how to solve this problem if we can’t. I know we can control the video element volume itself but that seems to have no impact on the phone volume itself. As in I can turn the phone media volume all the way up but control the video element separate instead of them working together.
I installed a cheap chinese Android based car head unit in my 15 year old second hand car, with probably Android 8 or 9 (maybe even a fake version where the version shown is higher than is installed). For most things it works. Sound output is good, bluetooth works, Wifi works, Google apps like Maps, Chrome, Youtube all work.
I have an external mic attached to it. There is a sound recording app, which records the sound when I use this mic. I can replay the sounds, so far so good. So here's the thing: the phone app does not pick up this mic, and also no sound on the tiny mic that's built in. Same for Google Voice Search, it just doesn't pick up anything. When I call someone, they don't hear me speaking at all.
My question is: how do I go about debugging it? Is there some kind of app that I can use to diagnose, which will at least show device mapping, or show signals like in Windows?
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.
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