doublesymmetry /
KotlinAudio
KotlinAudio is an Android audio player written in Kotlin, making it simpler to work with audio playback from streams and files.
64/100 healthLoading repository data…
twilio / repository
An Android audio management library for real-time communication apps.
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
An Android audio management library for real-time communication apps.
| Android Studio Version | Android API Version Min |
|---|---|
| 3.6+ | 16 |
The KDoc for this library can be found here.
To get started using this library, follow the steps below.
Ensure that you have mavenCentral listed in your project's buildscript repositories section:
buildscript {
repositories {
mavenCentral()
// ...
}
}
Add this line as a new Gradle dependency:
implementation 'com.twilio:audioswitch:$version'
Pull requests merged to master result in a snapshot artifact being published to the Maven Central snapshots repository. You can
access these snapshots by adding the following to your gradle file repositories:
maven {
url = uri("https://oss.sonatype.org/content/repositories/snapshots")
}
Add a -SNAPSHOT suffix to the Gradle dependency version:
implementation 'com.twilio:audioswitch:$version-SNAPSHOT'
Instantiate an instance of the AudioSwitch class, passing a reference to the application context.
val audioSwitch = AudioSwitch(applicationContext)
To begin listening for live audio device changes, call the start function and pass a lambda that will receive AudioDevices when they become available.
audioSwitch.start { audioDevices, selectedDevice ->
// TODO update UI with audio devices
}
You can also retrieve the available and selected audio devices manually at any time by calling the following properties:
val devices: List<AudioDevice> = audioSwitch.availableAudioDevices
val selectedDevice: AudioDevice? = audioSwitch.selectedAudioDevice
Note: Don't forget to stop listening for audio devices when no longer needed in order to prevent a memory leak.
audioSwitch.stop()
Before activating an AudioDevice, it needs to be selected first.
devices.find { it is AudioDevice.Speakerphone }?.let { audioSwitch.selectDevice(it) }
If no device is selected, then the library will automatically select a device based on the following priority: BluetoothHeadset -> WiredHeadset -> Earpiece -> Speakerphone.
Activating a device acquires audio focus with voice communication usage and begins routing audio input/output to the selected device.
audioSwitch.activate()
Make sure to revert back to the prior audio state when it makes sense to do so in your app.
audioSwitch.deactivate()
Note: The stop() function will call deactivate() before closing AudioSwitch resources.
Multiple connected bluetooth headsets are supported.
AudioSwitch availableAudioDevices and selectedAudioDevice functions.
AudioSwitch availableAudioDevices and selectedAudioDevice functions.Audioswitch is compatible with apps written in Java that target Java 8, and follows the recommendations provided in the Kotlin for Java consumption guide. The project includes Java specific unit tests that demonstrate how to use Audioswitch from a Java based application. If you have any Java compatibility questions please open an issue.
By default, AudioSwitch logging is disabled. Reference the following snippet to enable AudioSwitch logging:
val audioSwitch = AudioSwitch(context, loggingEnabled = true)
audioSwitch.start { _, _ -> }
On Android 12 and greater, the application using this library is expected to request the BLUETOOTH_CONNECT permission. Not doing so will disable the use of bluetooth in the audioswitch library. Pre-Android 12, no user permission requests are needed. All other permissions needed are listed in the library's manifest and are automatically merged from the manifest file in this library.
We welcome and encourage contributions to AudioSwitch! However, pull request (PR) validation requires access to credentials that we cannot provide to external contributors. As a result, the contribution process is as follows:
Apache 2.0 license. See LICENSE.txt for details.
Selected from shared topics, language and repository description—not editorial ratings.
doublesymmetry /
KotlinAudio is an Android audio player written in Kotlin, making it simpler to work with audio playback from streams and files.
64/100 healthTurbofan3360 /
An open-source, privacy respecting, and simple Android audio equalizer app.
74/100 healthiqbalansyor /
Android audio transcription (speech-to-text) app using Kotlin. Supports offline and online transcription with modern Android architecture.
iqbalansyor /
Android audio transcription (speech-to-text) app using Kotlin. Supports offline and online transcription with modern Android architecture.
39/100 healthovertane /
Demo for playing / recording PCM audio on Android
41/100 healthSulemanMirz /
AudioRecorderApp built with Kotlin Android Studio using MediaRecorder and MediaPlayer
30/100 health