Как синхронизировать несколько музыкальных проигрывателей Android с низкой задержкойAndroid

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

Сообщение Anonymous »

Я разрабатываю приложение для Android, которое должно одновременно воспроизводить пять звуковых дорожек песни. В настоящее время я использую пакет Android MediaPlayer для воспроизведения. Однако точная синхронизация имеет решающее значение, поскольку задержка между треками не должна превышать 25 мс. Иногда я добиваюсь такого тайминга, но чаще задержка превышает 25мс, что приводит к заметной десинхронизации. Я экспериментировал с сопрограммами, которые оставил в примере кода, но это не улучшило результаты.

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

lateinit var songTracks: Array

private fun prepareMediaPlayers() {
songTracks = arrayOf(
MediaPlayer.create(this, R.raw.track1),
MediaPlayer.create(this, R.raw.track2),
MediaPlayer.create(this, R.raw.track3),
MediaPlayer.create(this, R.raw.track4),
MediaPlayer.create(this, R.raw.track5)
)

}

private val onPlaying = fun() {
prepareMediaPlayers()
// Does not play synchronously
CoroutineScope(Dispatchers.Main).launch { songTracks[0].start() }
CoroutineScope(Dispatchers.Main).launch { songTracks[1].start() }
CoroutineScope(Dispatchers.Main).launch { songTracks[2].start() }
CoroutineScope(Dispatchers.Main).launch { songTracks[3].start() }
CoroutineScope(Dispatchers.Main).launch { songTracks[4].start() }
}
Я также пробовал альтернативы, такие как ExoPlayer, который вызывал аналогичные проблемы, и SoundPool, который казался многообещающим, но не подходит для более длинных звуковых дорожек (до 5 минут). Как добиться точной синхронизации многодорожечного воспроизведения звука на Android?

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

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

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

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

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

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

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