2015-11-11 3 views
0

У меня было три задачи, которые я хотел сделать: 1. Получите несколько медиаплееров, которые запускают различные аудиопотоки. 2. Измените громкость этих аудиопотоков. 3. Измените громкость левого и правого уха независимо (то есть, панорамирование)Объем, панорамирование и несколько процессов в MediaPlayer для Android

После того, как я искал какое-то время, я не нашел удовлетворительного ответа.

Для 1., большинство людей предложило использовать SoundPool (моя оригинальная интуиция) или AudioTrack (последний из которых является кровавым кошмаром, так как это означает, что в основном нужно построить совершенно новый медиаплеер).

Для 2. у всех, казалось, был spaz и продолжал говорить об AudioManager, что является буквально другой проблемой (в большинстве контекстов, которые я видел, включая мои). Он также не может иметь дело с 3.

Для 3., я почти ничего не нашел со случайными ссылками на AudioTrack.

Ну, я придумал невероятно простое решение, которое, как я полагал, было бы полезно здесь остановиться.

ответ

0

Решение состоит в том, что вы можете использовать несколько MediaPlayer с независимыми томами влево/вправо для каждого трека, используя .setVolume (слева, справа). Однако, и это абсолютно необходимо ...

Это будет не работы со всеми аудио форматов. В настоящее время у меня есть файлы .wav, чтобы работать полностью, а .mp3 не будет работать (в любом из 3-х аспектов).

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

Как предостережение, это работало на API-интерфейсе Nexus 5, запущенном API 23, поэтому я не могу обещать в других контекстах.

Смежные вопросы