All Downloads are FREE. Search and download functionalities are using the official Maven repository.

iosMain.nl.marc_apps.tts.AudioSession.kt Maven / Gradle / Ivy

Go to download

Kotlin Multiplatform Text-to-Speech library for Android and browser (Kotlin/JS & Kotlin/Wasm). This library will enable you to use Text-to-Speech in multiplatform Kotlin projects.

There is a newer version: 3.0.0-beta.1
Show newest version
package nl.marc_apps.tts

import kotlinx.cinterop.ExperimentalForeignApi
import kotlinx.cinterop.ptr
import nl.marc_apps.tts.utils.ErrorPointerUtils
import nl.marc_apps.tts.utils.throwOnError
import platform.AVFAudio.AVAudioSession
import platform.AVFAudio.AVAudioSessionCategoryOptionDuckOthers
import platform.AVFAudio.AVAudioSessionCategoryPlayback
import platform.AVFAudio.AVAudioSessionModeDefault
import platform.AVFAudio.setActive

object AudioSession {
    @OptIn(ExperimentalForeignApi::class)
    fun initialiseForTextToSpeech() {
        val audioSession = AVAudioSession.sharedInstance()

        ErrorPointerUtils.createErrorPointer { errorPtr ->
            audioSession.setCategory(AVAudioSessionCategoryPlayback,
                mode = AVAudioSessionModeDefault,
                options = AVAudioSessionCategoryOptionDuckOthers,
                errorPtr.ptr)

            errorPtr.throwOnError()

            audioSession.setActive(true, errorPtr.ptr)

            errorPtr.throwOnError()
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy