AsyncTasks и Audio - PullRequest
       1

AsyncTasks и Audio

0 голосов
/ 29 декабря 2011

Я пытаюсь воспроизвести несколько аудиофайлов, один за другим, и в настоящее время использую AsyncTasks для подготовки и запуска mediaPlayer, но не смог найти хороший способ перейти к следующей дорожке в конце текущей. Не каждый аудиофайл будет воспроизводиться каждый раз, и его воспроизведение определяется логическим значением.

Любая помощь очень ценится.

Ответы [ 2 ]

1 голос
/ 29 декабря 2011

Я предполагаю, что вы прочитали android-sdk / docs / reference / android / media / MediaPlayer.html, там написано:

Когда воспроизведение достигает конца потока, воспроизведение завершается.Если режим цикла был установлен в значение true с setLooping (логическое значение), объект MediaPlayer должен оставаться в состоянии «Запущено».Если режим зацикливания был установлен в false, механизм проигрывателя вызывает предоставленный пользователем метод обратного вызова, OnCompletion.onCompletion (), если OnCompletionListener заранее зарегистрирован через setOnCompletionListener (OnCompletionListener).Вызов обратного вызова сигнализирует, что объект теперь находится в состоянии PlaybackCompleted.Находясь в состоянии PlaybackCompleted, вызов start () может возобновить воспроизведение с начала аудио / видеоисточника.

Таким образом, вы можете установить новый источник, prepareAsync, а затем начать обратный вызов по завершении.Таким образом, вы получаете непрерывное воспроизведение, но оно не является бесшовным.

0 голосов
/ 29 декабря 2011

Сомнительное использование MediaPlayer для этого будет работать так, как вы этого хотите.Попробуйте этот урок:

http://www.droidnova.com/creating-sound-effects-in-android-part-1,570.html

Если это не сработает, вам, вероятно, придется смешивать звуки вместе, чтобы они передавались напрямую на оборудование с помощью AudioTrack.Это более низкий уровень, но он даст вам максимальный контроль.Это зависит только от того, что вы делаете, будет ли решение AudioManager работать на вас или нет.Это определенно более простой маршрут.Но, если вы пытаетесь выстроить два семпла так, чтобы, когда один из них закончился, начинался следующий, как в музыкальном приложении, вам, вероятно, придется микшировать и воспроизводить этот звук самостоятельно.*

Алгоритм микширования звука

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...