/
username0273
/
TextAdventure
Обзор
Документация
Войти
/
username0273
/
TextAdventure
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
app/src/main/java/com/example/textadventure/utils/SoundManager.kt
67 строк
2 KB
Simon
first_commit
22 апр 2026, 23:38
22 апр 2026, 23:38
ea68305
Код
Авторство
О чём код?
package com.example.textadventure.utils import android.content.Context import android.media.MediaPlayer import android.media.SoundPool class SoundManager(private val context: Context) { private val soundPool: SoundPool = SoundPool.Builder() .setMaxStreams(5) .build() private val soundMap = mutableMapOf<Int, Int>() private var bgMusicPlayer: MediaPlayer? = null // --------------------------------------------------------------------------------------------- // sound effects // --------------------------------------------------------------------------------------------- fun loadSound(resourceId: Int) { if (!soundMap.containsKey(resourceId)) { val soundId = soundPool.load(context, resourceId, 1) soundMap[resourceId] = soundId } } fun playSound(resourceId: Int) { // load sound if not already loaded loadSound(resourceId) // play the sound soundMap[resourceId]?.let { soundId -> soundPool.play(soundId, 1.0f, 1.0f, 1, 0, 1.0f) } } // --------------------------------------------------------------------------------------------- // background music // --------------------------------------------------------------------------------------------- fun playBackgroundMusic(resourceId: Int) { stopBackgroundMusic() // stop previous music if playing bgMusicPlayer = MediaPlayer.create(context, resourceId).apply { isLooping = true start() } } fun stopBackgroundMusic() { bgMusicPlayer?.let { if (it.isPlaying) it.stop() it.release() } bgMusicPlayer = null } fun pauseBackgroundMusic() { bgMusicPlayer?.pause() } fun resumeBackgroundMusic() { bgMusicPlayer?.start() } fun release() { stopBackgroundMusic() soundPool.release() } }