Я создаю приложение для Android, где необходимо воспроизводить данные PCM в проигрывателе очереди как float. Насколько я вижу, это невозможно. В описании говорится:
SL_DATAFORMAT_PCM не позволяет приложению указывать представление данных в виде целого числа со знаком, целого числа без знака или числа с плавающей запятой. Реализация Android предполагает, что 8-битные данные представляют собой целое число без знака, а 16-битное — целое число со знаком. Кроме того, название поля samplePerSec является неправильным, так как фактическими единицами измерения являются миллигерцы. Ожидается, что эти проблемы будут решены в следующей версии OpenSL ES, в которой будет представлен новый расширенный формат данных PCM, который позволяет приложению явно указывать представление и исправляет имя поля. Поскольку это будет новый формат данных, а текущий формат данных PCM по-прежнему будет доступен (хотя он и устарел), он не должен требовать каких-либо немедленных изменений в вашем коде.
Есть ли шанс получить эту работу через openssl es (1.0.1) ИЛИ есть ли альтернатива openssl es для android ndk?