Wav-файл с передискретизацией для устройств Android (Bluetooth LE)
Я около недели пытаюсь завершить чрезвычайно сложную концепцию проекта. Я пытаюсь использовать 19 байтов BLE
позволяет передавать необработанные данные PCM через Bluetooth LE
для всех других устройств Android в непосредственной близости.
Я использовал Audacity, чтобы превратить песню в формате FLAC в моно, частоту дискретизации 2000 Гц, 8-битный неподписанный WAV-файл, который все еще звучит полуприлично. Проблема заключается в том, что BLE загружает данные на соседние устройства со скоростью, равной половине того, что требуется для потоковой передачи файла на другой стороне (часть моего плана состоит в том, чтобы транслировать песню в прямом эфире на каждое устройство).
Мой план состоит в том, чтобы отправить данные на другое устройство, преобразовать аудиоданные 2000 Гц в аудиоданные 4000 Гц; Это самая низкая частота дискретизации, поддерживаемая AudioTrack, которую я знаю. В обычной Java я мог использовать пакеты Tritonus для изменения частоты дискретизации до необходимого уровня Гц, но я не могу загрузить пакет в Android (я использую Android Studio).
По сути, я спрашиваю, существует ли известный пакет или алгоритм, который может преобразовывать необработанные музыкальные данные, совместимые с Android? Я копаюсь на странице Tritonus для фрагментов кода, которые могут помочь мне в этом. Я очень мало сплю... все программирование и отсутствие игр делает Омики скучным мальчиком...
2 ответа
Может быть, вы должны посмотреть в 7zip. Он имеет лучшую степень сжатия и работает на приличной скорости.
В итоге я добавил несколько файлов Tritonus, о которых упоминал ранее, но для них требовался пакет java, не включенный в Android. Это немного странно, но я просто взял код из необходимых мне исходных java-пакетов и включил их в свои библиотечные файлы. Теперь это работает! Ну... качество звука все еще ужасное, но преобразование частоты дискретизации работает быстро.