
iosMain.nl.marc_apps.tts.AudioSession.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of tts Show documentation
Show all versions of tts Show documentation
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.
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