Воспроизведение аудио с устройства ASIO на устройстве Android - PullRequest
0 голосов
/ 13 февраля 2019

У меня есть звук, записанный с устройства ASIO, который хранится в виде массива с плавающей точкой.Кажется, что типом сэмпла аудио является «ASIOSTInt32LSB».Я пытаюсь понять, как воспроизвести этот звук на устройстве Android.

Я попытался создать AudioTrack и записать байтовый массив аудио с устройства ASIO на дорожку, но я получаю сообщения об ошибках, которые можно увидеть ниже.Я пытался нормализовать значения массива с плавающей точкой в ​​диапазоне от -1,0 до 1,0, но это не имело никакого эффекта.Я также попытался использовать MediaPlayer вместо AudioTrack и создать временный файл, который принимает значение байтового массива, но это тоже не сработало.

private void playSound(byte[] soundArray)
    {
        final int TEST_SR = 22050; //This is from an example I found online.
        final int TEST_CONF = AudioFormat.CHANNEL_OUT_MONO;
        final int TEST_FORMAT = AudioFormat.ENCODING_PCM_FLOAT;
        final int TEST_MODE = AudioTrack.MODE_STATIC;.
        final int TEST_STREAM_TYPE = AudioManager.STREAM_ALARM;
        AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, soundArray.length, TEST_MODE);
        track.write(soundArray, 0, soundArray.length);
    }

Я хочу, чтобы звук воспроизводился,но вместо этого выдаются следующие ошибки:

2019-02-13 20:19:29.665 16618-16653/com.xx.yy E/AudioTrack: AudioFlinger could not create track, status: -12
2019-02-13 20:19:29.666 16618-16653/com.xx.yy E/AudioTrack-JNI: Error -12 initializing AudioTrack
2019-02-13 20:19:29.667 16618-16653/com.xx.yy E/android.media.AudioTrack: Error code -20 when initializing AudioTrack.
...