기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.

ARNDALE BOARD로 안드로이드를 공부하게 된 초보자입니다.


제가 오디오 테스트 중에 문제점을 발견하여 문의를 드립니다.


1. 녹음 X, 출력 O


2. 녹음을 하게 되면 나타나는 증상

 - 안드로이드 정지(O.S 다운)

 - 녹음이 진행되어도 1~3초간만 진행되고 그나마 녹음된 파일을 열어보면 어떤 데이터(PCM, MP3 등등)도 없습니다.

 - 위와 같이 진행된 이후 오디오 출력이 되질 않고 간혹 녹음 전에 들었던 음악파일의 재생정보가 꼬이는 경우도 있었습니다. 예를 들어 3분짜리가 400시간짜리로 표현되거나 재생 중단 시점이 1분 30초라고 할 때 재생버튼을 누르면 바가 진행을 안 하고 노래도 나오질 않습니다.


사용한 어플은 Easy Voice Record, PCM Recorer, 자작 어플(타 기기에서 동작확인)


다음은 터미널 내용입니다.


[    3.076186] logger: created 256K log 'log_main'

[    3.080378] logger: created 256K log 'log_events'

[    3.085062] logger: created 256K log 'log_radio'

[    3.089620] logger: created 256K log 'log_system'

[    3.095744] Samsung Audio Subsystem Driver, (c) 2011 Samsung Electronics

[    3.110052] mmc_host mmc1: Bus speed (slot 0) = 50000000Hz (slot req 400000Hz, actual 396825HZ div = 63)

[    3.158830] mmc_host mmc1: Bus speed (slot 0) = 50000000Hz (slot req 50000000Hz, actual 50000000HZ div = 0)

[    3.167244] mmc1: new high speed SDHC card at address 0002

[    3.172919] mmcblk1: mmc1:0002 00000 7.41 GiB

[    3.178406]  mmcblk1: p1

[    3.205127] mmc_host mmc2: Bus speed (slot 0) = 50000000Hz (slot req 400000Hz, actual 396825HZ div = 63)

[    3.241998] wm8994-codec wm8994-codec: Failed to request Mic1 short IRQ: -22

[    3.247593] wm8994-codec wm8994-codec: Failed to request Mic2 detect IRQ: -22

[    3.254700] wm8994-codec wm8994-codec: Failed to request Mic2 short IRQ: -22

[    3.261781] usb 1-3.2.4: new high speed USB device number 4 using s5p-ehci

[    3.268566] mmc_host mmc2: Bus speed (slot 0) = 50000000Hz (slot req 392157Hz, actual 390625HZ div = 64)

[    3.325145] asoc: wm8994-aif1 <-> samsung-i2s.0 mapping ok

[    3.329833] ALSA device list:

[    3.332110]   #0: Arndale

[    3.334730] GACT probability NOT on

[    3.338178] Mirror/redirect action on

[    3.341814] u32 classifier


다음은 로그입니다.


02-04 07:59:03.335: I/SurfaceFlinger(1415): SurfaceFlinger's main thread ready to run. Initializing graphics H/W...

02-04 07:59:03.345: D/AudioHardware(1418): Mixer: element name: 'Headphone'

02-04 07:59:03.345: D/AudioHardware(1418): Mixer: element name: 'Speaker'

02-04 07:59:03.345: D/AudioHardware(1418): Mixer: element name: 'Speaker Boost'

02-04 07:59:03.345: D/AudioHardware(1418): Mixer: element name: 'Speaker Mixer'

.

.

.

02-04 07:59:03.345: D/AudioHardware(1418): Mixer: master 'PCM' not found.

02-04 07:59:03.345: D/AudioHardware(1418): Mixer: route 'Earpiece' found.

02-04 07:59:03.345: D/AudioHardware(1418): Mixer: route 'Speaker' found.

02-04 07:59:03.345: D/AudioHardware(1418): Mixer: route 'Bluetooth' not found.

02-04 07:59:03.345: D/AudioHardware(1418): Mixer: route 'Headphone' found.

02-04 07:59:03.345: D/AudioHardware(1418): Mixer: route 'Bluetooth A2DP' not found.

.

.

.

02-04 07:59:03.345: D/AudioHardware(1418): Mixer: master 'Capture' not found.

02-04 07:59:03.345: D/AudioHardware(1418): Mixer: route 'Capture' not found.

02-04 07:59:03.345: D/AudioHardware(1418): Mixer: route '' not found.

02-04 07:59:03.345: D/AudioHardware(1418): Mixer: route 'Bluetooth Capture' not found.

02-04 07:59:03.345: D/AudioHardware(1418): Mixer: route 'Capture' not found.

02-04 07:59:03.345: D/AudioHardware(1418): Mixer: route 'Bluetooth A2DP Capture' not found.

02-04 07:59:03.345: D/AudioHardware(1418): mixer initialized.

02-04 07:59:03.345: I/AudioFlinger(1418): loadHwModule() Loaded primary audio interface from LEGACY Audio HW HAL (audio) handle 1

02-04 07:59:03.345: E/AudioHardware(1418): ALSAStreamOps - input   - format = 1, channels = 3, rate = 44100

02-04 07:59:03.345: E/AudioHardware(1418): ALSAStreamOps - default - format = 2, channels = 2, rate = 44100

02-04 07:59:03.350: I/AudioHardware(1418): virtual android_audio_legacy::AudioStreamOut* android_audio_legacy::AudioHardwareALSA::openOutputStream(uint32_t, int*, uint32_t*, uint32_t*, android::status_t*)] Setting ALSA device.

02-04 07:59:03.350: I/AudioHardware(1418): Try to open ALSA PLAYBACK device AndroidPlayback_Speaker_normal

02-04 07:59:03.350: I/AudioHardware(1418): Initialized ALSA PLAYBACK device AndroidPlayback_Speaker_normal

02-04 07:59:03.350: D/AudioHardware(1418): Set PLAYBACK PCM format to S16_LE (Signed 16 bit Little Endian)

02-04 07:59:03.350: D/AudioHardware(1418): Using 2 channels for PLAYBACK.

02-04 07:59:03.350: D/AudioHardware(1418): Set PLAYBACK sample rate to 44100 HZ

02-04 07:59:03.350: D/AudioHardware(1418): Samples in buffer : 4096

02-04 07:59:03.350: D/AudioHardware(1418): Latency: 92879


문제점을 알려주는 메세지는 붉은 색으로 처리하였습니다.



위의 내용들로 제 스스로는 커널 쪽에서 문제가 발생한듯 한데 접근을 어떻게 하면 수정해서

마이크를 동작시켜 녹음을 할 수 있을지 궁금합니다.



고도리

2013.02.05 22:24:35
*.200.239.210

wm1811A HAL 구성의 문제인 듯 합니다.


담당자가 해외 출장중이라 당장 확인은 어려울 듯 하고요. 출장에서 돌아오는대로 정리해서 올리도록 하겠습니다.

윤승환

2013.02.05 22:40:32
*.200.6.247

말씀하신 내용에 대한 부분은 고도리님 말씀과 같이 HAL쪽의 문제입니다.

현재 audio hal에서는 기존 안드로이드에서 (ICS)부터 제공하는 것으로 보이는 audio util내의 resampler를 사용하고 있지 않았습니다. 따라서 이에 대한 부분을 임의로 막고 사용하고 있었는데요. JB에서부터는 이 방식을 버리고 안드로이드에서 제공하는 resampler를 사용하기 위해 현재 수정 작업을 진행하고 있는 중입니다.

따라서, 현재 audio HAL을 사용하게 되면, recording 시 44100hz sampling rate가 아닌 8000hz/16000hz의 sampling rate 설정에 문제가 발생합니다. 이에 의해 위에 말씀하신 것과 같은 현상이 나타날 수 있습니다.


audio HAL의 업데이트가 완료되면 다시 댓글로 알려드리도록 하겠습니다. :)

강현성

2013.02.06 19:52:33
*.36.51.196

그럼 업데이트를 기다리겠습니다.

그리고 신속한 답변 감사드립니다. ^^ 


List of Articles
번호 제목 글쓴이 날짜 조회 수

사용자 로그인