Есть ли способ воспроизводить аудио в формате mp3 с помощью Compose Multiplatform for Desktop?JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Есть ли способ воспроизводить аудио в формате mp3 с помощью Compose Multiplatform for Desktop?

Сообщение Anonymous »

Java не поддерживает формат .mp3, поэтому я попытался использовать библиотеку JLayer для воспроизведения аудио в формате mp3. Но проигрыватель JLayer не поддерживает регулировку громкости и паузу во время воспроизведения.
Поэтому я нахожу лучший способ воспроизводить аудио в формате mp3 на рабочем столе с помощью Compose Multiplatform.
Входное аудио в формате mp3 будет передано в виде ByteArray. Он должен поддерживать эти функции.
  • пауза и воспроизведение
  • регулировка громкости во время воспроизведения
  • условный аудиоцикл

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

expect class AudioManager constructor(data: ByteArray) {
var volume: Float

var loop: Boolean

fun play()

fun pause()

fun stop()
}
Это ожидаемый класс моего AudioManager.

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

actual class AudioManager actual constructor(data: ByteArray) {

private val mediaPlayer = MediaPlayer().apply {
val mediaSource = ByteArrayMediaDataSource(data)
setDataSource(mediaSource)
prepare()
}

actual var volume: Float = 1F
set(value) {
mediaPlayer.setVolume(value, value)
field = value
}

actual var loop: Boolean = false
set(value) {
mediaPlayer.isLooping = value
field = value
}

actual fun play() {
mediaPlayer.start()
}

actual fun pause() {
mediaPlayer.pause()
}

actual fun stop() {
mediaPlayer.stop()
}

inner class ByteArrayMediaDataSource(private val data: ByteArray) : MediaDataSource() {

override fun readAt(position: Long, buffer: ByteArray, offset: Int, size: Int): Int {
System.arraycopy(data, position.toInt(), buffer, offset, size)
return size
}

override fun getSize(): Long {
return data.size.toLong()
}

override fun close() { }
}
}
Это написанный мной пример кода для Android с использованием MediaPlayer.


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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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