在Android设备上播放来自ASIO设备的音频

时间:2019-02-13 20:44:35

标签: android audio asio

我从ASIO设备记录了一些声音,这些声音存储为浮点数组。似乎音频的样本类型是“ ASIOSTInt32LSB”。我试图弄清楚如何在Android设备上播放此音频。

我尝试创建一个AudioTrack并将音频的字节数组从ASIO设备写入轨道,但是我收到了可以在下面看到的错误。我尝试将float数组的值规范化为-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.

0 个答案:

没有答案