안드로이드 개발 질문/답변
(글 수 45,052)
AudioTrack 클래스를 사용해 pcm/wav 음원을 재생하는 것을 구현하는중에
추측컨데 2~3 메가정도의 음원을 사용할시에 아래와 같은 에러가 발생됩니다.
여기서 에러가 납니다.
I/global ( 2268): Default buffer size used in BufferedInputStream constructor.
It would be better to be explicit if an 8k buffer is required.
D/SSamDDak( 2268): mMusicLength : 2324992
E/AudioFlinger( 59): not enough memory for AudioTrack size=2325056
D/MemoryDealer( 59): AudioTrack (0x1eab8, size=1048576)
D/MemoryDealer( 59): 0: 0001f418 | 0x00000000 | 0x00100000 | F
D/MemoryDealer( 59): size allocated: 0 (0 KB)
E/AudioTrack( 2268): AudioFlinger could not create track, status: -12
E/AudioTrack-JNI( 2268): Error initializing AudioTrack
E/AudioTrack-Java( 2268): [ android.media.AudioTrack ] Error code -20 when initi
alizing AudioTrack.
MediaPlayer 클래스는 사용 할 수 없습니다.
pcm 데이터를 조작하는 로직이 있어서요.
해결 방법좀 부탁드립니다 ^^
추측컨데 2~3 메가정도의 음원을 사용할시에 아래와 같은 에러가 발생됩니다.
mAudioTrack = new AudioTrack(AudioManager.STREAM_MUSIC, 8000,
AudioFormat.CHANNEL_OUT_MONO,
AudioFormat.ENCODING_PCM_16BIT, mMusicLength,
AudioTrack.MODE_STREAM);여기서 에러가 납니다.
I/global ( 2268): Default buffer size used in BufferedInputStream constructor.
It would be better to be explicit if an 8k buffer is required.
D/SSamDDak( 2268): mMusicLength : 2324992
E/AudioFlinger( 59): not enough memory for AudioTrack size=2325056
D/MemoryDealer( 59): AudioTrack (0x1eab8, size=1048576)
D/MemoryDealer( 59): 0: 0001f418 | 0x00000000 | 0x00100000 | F
D/MemoryDealer( 59): size allocated: 0 (0 KB)
E/AudioTrack( 2268): AudioFlinger could not create track, status: -12
E/AudioTrack-JNI( 2268): Error initializing AudioTrack
E/AudioTrack-Java( 2268): [ android.media.AudioTrack ] Error code -20 when initi
alizing AudioTrack.
MediaPlayer 클래스는 사용 할 수 없습니다.
pcm 데이터를 조작하는 로직이 있어서요.
해결 방법좀 부탁드립니다 ^^




mMusicLength가 아니고 minBufferSize를 구해서 넣어주세요.
메모리 용량 초과인듯합니다.