У меня есть AudioTrack в моем приложении, которое настроено на режим Stream. Я хочу написать аудио, которое я получаю по беспроводному соединению. AudioTrack объявляется следующим образом:
mPlayer = new AudioTrack(STREAM_TYPE,
FREQUENCY,
CHANNEL_CONFIG_OUT,
AUDIO_ENCODING,
PLAYER_CAPACITY,
PLAY_MODE);
Если параметры определены следующим образом:
private static final int FREQUENCY = 8000,
CHANNEL_CONFIG_OUT = AudioFormat.CHANNEL_OUT_MONO,
AUDIO_ENCODING = AudioFormat.ENCODING_PCM_16BIT,
PLAYER_CAPACITY = 2048,
STREAM_TYPE = AudioManager.STREAM_MUSIC,
PLAY_MODE = AudioTrack.MODE_STREAM;
Однако, когда я пишу данные в AudioTrack с помощью write(), он будет играть прерывистый... Вызов
byte[] audio = packet.getData();
mPlayer.write(audio, 0, audio.length);
создается всякий раз, когда пакет принимается по сетевому соединению. Кто-нибудь знает, почему это звучит странно? Может быть, это имеет какое-то отношение к самому Wi-Fi-соединению? Я так не думаю, поскольку звук не звучит ужасно, наоборот, когда я отправляю данные с телефона Android в другой источник через UDP. Звук тогда звучит полным, а не изменчивым... Так кто-нибудь имеет представление о том, почему это происходит?