2016-05-05 1 views
1

У меня есть приложение, которое воспроизводит музыку (mp3) с сервера, созданных списков воспроизведения и т.д.DSP (цифровая обработка звука) с Android Media Player

Проблема в том, что звук/объем/дб некоторых песен выше или ниже других ... Таким образом, я изучаю способ внедрения DSP (Digital Sound Processing) в мое приложение во время воспроизведения музыки. Мне нужен звуковой компрессор, который снижает выход db, если это выходит за пределы порогового значения или увеличивает выход db, если он находится под некоторым порогом.

Есть ли у кого-нибудь идеи, как это можно сделать ??? Я нашел некоторое приложение DSP в Google Play, так что это возможно, но как его реализовать?

Я нашел возможное решение под названием «Automatic Gain Control», которое должно на самом деле сделать это, но, читая его, оно предназначено для звука INPUT во время записи, а не OUTPUT, как при воспроизведении песни с сервера!

Любые идеи, предложения, примеры?

Благодаря

ответ

0

Существует встроенный LoudnessEnhancer эффекта, начиная с Android KitKat. Он будет сжимать звуки, которые в противном случае будут скопированы с заданной настройкой усиления. См. the docs, а здесь an example.

Возможно, решение, которое вы ищете, называется "Replay Gain", и оно использует теги, встроенные в mp3-файлы, для соответствия результирующим уровням звука. Таким образом, ваш плеер может снизить коэффициент усиления для треков, которые громче, чем необходимо, и увеличить коэффициент усиления для бесшумных дорожек. И с помощью LoudnessEnhancer вы не должны подвергаться обрезке. Таким образом, вам фактически не нужно выполнять какой-либо код DSP.

+0

Привет, Михаил! Большое спасибо! Согласно описанию на странице «Разработчики», это правильно подходит! Я собираюсь попробовать и представить результаты здесь. – MTurPash