OGG Audio to AudioTrack - PullRequest
       16

OGG Audio to AudioTrack

0 голосов
/ 09 июля 2011

Я пытаюсь загрузить файл OGG в AudioTrack, чтобы я мог управлять скоростью воспроизведения и воспроизводить его. Тем не менее, я получаю исключение нулевого указателя в строке "track [voiceIndex] = dis.readByte ();". Я полагаю, это выходит за пределы массива треков. Честно говоря, я не знаю много о потоках данных, поэтому я просто скопировал этот код. Мне трудно это понять. Любая помощь будет оценена, спасибо.

.....
private AudioTrack voice = null;
private InputStream is = null;
private byte[] track = null;
private BufferedInputStream bis = null;
private DataInputStream dis = null;
.......
int playbackRate = 0;
    is = getResources().openRawResource(sentences[index].voice);
    bis = new BufferedInputStream(is, 8000);
    dis = new DataInputStream(bis);

    while (dis.available() > 0){
        track[voiceIndex] = dis.readByte();
        voiceIndex++;
    }
    voice.write(track, 0, track.length);
    playbackRate = voice.getPlaybackRate();
    voice.play();

1 Ответ

0 голосов
/ 23 января 2013

Вы можете использовать MediaExtractor для получения аудиоданных: ссылка , но это доступно с уровня API 16. В более ранних версиях вы можете использовать одну из внешних библиотек для декодирования аудио.

...