У меня есть приложение для синтеза звука, которое использует буферизацию и значение для поиска, чтобы изменить темп. Чем меньше размер буфера, тем быстрее темп. Значение поисковой строки вычитается из размера буфера; чем дальше перемещается стрелка, тем быстрее темп.Android audiotrack getMinBufferSize() возвращает разные значения на разных устройствах
BufferSize вычисляется с использованием:
int buffersize = AudioTrack.getMinBufferSize(sr, AudioFormat.CHANNEL_OUT_MONO,
AudioFormat.ENCODING_PCM_16BIT);
На телефоне Samsung Galaxy S6, возвращаемый BufferSize является 10584. В нижней и верхней части значений ползунка дают 60 ударов в минуту и 192 ударов в минуту соответственно.
Однако на 7" LG G Pad 7.0, возвращаемый BufferSize только 3528. В результате, начальный темп составляет около 180-200 ударов в минуту, а не требуемого 60 ударов в минуту.
Я подумал использование жесткого кодирования размера буфера в зависимости от размера экрана, но это просто лейкопластырь работы.
Почему же расчет возвращается два различных размером буфера через два устройства? Как размер буфера рассчитывается?
http://stackoverflow.com/q/20511144/1168654 –