2010-02-15 8 views
2

온라인 mp3 링크에서 음악을 재생하고 싶습니다.android의 오디오 트랙에서 오디오 재생

음악 데이터를 스트림으로 읽고 오디오 트랙을 사용하여 재생하려고합니다.

하지만 잡음 만 있습니다. 나는 음악을들을 수 없다.

이것은 나의 코드 다.

int intSize = android.media.AudioTrack.getMinBufferSize(8000, 
        AudioFormat.CHANNEL_CONFIGURATION_MONO, 
        AudioFormat.ENCODING_PCM_16BIT); 

AudioTrack oTrack = new AudioTrack(AudioManager.STREAM_MUSIC, 8000, 
        AudioFormat.CHANNEL_CONFIGURATION_MONO, 
        AudioFormat.ENCODING_PCM_16BIT, intSize, 
        AudioTrack.MODE_STREAM); 

oTrack.play(); 
oTrack.write(buffer, 0, buffer.length); 

여기서 버퍼는 내가 읽고있는 오디오 데이터입니다.

동일한 버퍼 MediaPlayer에서 재생할 수 있지만 audiotrack에서 재생할 수 없습니다.

내가 잘못 할 수 있습니까?

+1

(API 문서)에 따라 8 비트 및 16 비트만을 지원 조심 변환. –

답변

1

MP3는 스트림 컨테이너입니다. 기본 오디오 코덱은 AAC, OGG 또는 Vorbis 일 수 있지만 압축되지 않은 원시 오디오 데이터 인 PCM은 아닐 수도 있습니다.

그러나 AudioTrack은 PCM 오디오 버퍼 만 재생합니다.

중에 오디오 스트림이 I AudioTrack 코드를 포함하는 각 라인의 간청에서 4 공백

둘 것
+0

명확하게하기 위해 8 비트와 16 비트는 샘플 크기입니다. – Yanuxx

+2

컨테이너 형식과 오디오 코덱은 다르지만 MP3 컨테이너 형식은 MP3 오디오 만 저장할 수 있습니다. WAV, OGG 및 MP4는보다 일반적인 용도의 컨테이너입니다. –