Аудио не перестает воспроизводиться при использовании MediaPlayer в Android StudioAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Аудио не перестает воспроизводиться при использовании MediaPlayer в Android Studio

Сообщение Anonymous »

Я разработал простое приложение для Android, в котором можно воспроизводить и останавливать звук с помощью MediaPlayer. Однако звук не прекращается по запросу.
Вот описание приложения. В столбце две кнопки. Первая кнопка подготавливает и воспроизводит аудиофайл. Второй останавливает воспроизведение аудиофайла.
Вот код MainActivity

Код: Выделить всё

// Sound Effect Uri
val soundEffectUri = "android.resource://com.example.audiotest/raw/sound_effect"

// App Layout
Column(
modifier = Modifier.fillMaxSize(),
verticalArrangement = Arrangement.Center,
horizontalAlignment = Alignment.CenterHorizontally
) {

// Button That Plays Audio
Button(onClick = { AudioClass(this).play() })
{ Text(text = "Start") }

// Button That Stops Audio
Button(onClick = { AudioClass(this).stop() })
{ Text(text = "Stop") }
Логика MediaPlayer вынесена в отдельный класс. Вот

Код: Выделить всё

// Class That Holds MediaPlay Logic
class AudioClass(context: Context) {

// Instance Of MediaPlayer
val mediaPlayer = MediaPlayer()

// MediaPlayer Attributes
init {
mediaPlayer.setDataSource(context, Uri.parse(soundEffectUri))
mediaPlayer.setAudioStreamType(AudioManager.STREAM_ALARM)
mediaPlayer.isLooping = true
}

// Function That Prepares And Starts Audio
fun play() {
mediaPlayer.prepare()
mediaPlayer.start()
}

// Function That Stops Audio
fun stop() {
mediaPlayer.stop()
}

}
Проблема с неостановкой звука возникает только тогда, когда MediaPlayer инициализируется вне Activity или Composable. Я хотел бы инициализировать его глобально, чтобы можно было использовать его там, где это необходимо.
Вот что говорит лог-кот всякий раз, когда я нажимаю кнопку, останавливающую звук.

Код: Выделить всё

2024-09-23 19:10:55.088 22661-22661 MediaPlayerNative com.example.audiotest E stop called in state 2, mPlayer(0xd25cb1e0)

2024-09-23 19:10:55.088 22661-22661 MediaPlayerNative com.example.audiotest E error (-38, 0)

2024-09-23 19:10:55.149 22661-22661 MediaPlayer com.example.audiotest E Error (-38,0)
Спасибо, что нашли время прочитать этот вопрос.

Подробнее здесь: https://stackoverflow.com/questions/790 ... iod-studio
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Случайное исключение IllegalStateException в Android mediaPlayer.prepare или mediaPlayer.setDataSource
    Anonymous » » в форуме Android
    0 Ответы
    61 Просмотры
    Последнее сообщение Anonymous
  • ExoPlayer перестает воспроизводиться после получения пустого плейлиста с помощью HLS
    Гость » » в форуме Android
    0 Ответы
    19 Просмотры
    Последнее сообщение Гость
  • ExoPlayer перестает воспроизводиться после получения пустого плейлиста с помощью HLS
    Anonymous » » в форуме Android
    0 Ответы
    24 Просмотры
    Последнее сообщение Anonymous
  • Android – при выходе из WebView звук продолжает воспроизводиться
    Anonymous » » в форуме Android
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Видео не будет воспроизводиться в JW Player на Android
    Anonymous » » в форуме Android
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Android»