图片:
在光盘提供的源代码下,编译audio的HAL层,使用mm命令进行模块化编译,编译之后生成:
audio.primary.mini210.so audio_policy.mini210.so两个库文件,随后使用这两个文件替换掉系统中/system/lib/hw中
的原文件,重启之后,这两个加载了log如下:
I/AudioFlinger( 1490): Loaded primary audio interface from LEGACY Audio HW HAL (audio)
I/AudioFlinger( 1490): Using 'LEGACY Audio HW HAL' (audio.primary) as the primary audio interface
I/AudioFlinger( 1490): Loaded a2dp audio interface from A2DP Audio HW HAL (audio)
D/AudioHardwareInterface( 1490): setMode(NORMAL)
I/CameraService( 1490): CameraService started (pid=1490)
I/AudioPolicyService( 1490): Loaded audio policy from Default audio policy HAL (audio_policy)
可是在系统的itest中,就不能正常播放音乐了,用logcat查看日志,有:
E/SoundPool( 1659): Error creating AudioTrack
E/MediaPlayer( 2328): error (-19, 0)
E/MediaPlayer( 2328): Error (-19,0)
E/SoundPool( 1659): Error creating AudioTrack
E/MediaPlayer( 2328): stop called in state 0
E/MediaPlayer( 2328): error (-38, 0)
E/MediaPlayer( 2328): prepareAsync called in state 0
E/MediaPlayer( 2328): start called in state 0
E/MediaPlayer( 2328): error (-38, 0)
E/MediaPlayer( 2328): Error (-38,0)
会不会是加载错误呢??随后,将我编译的两个库文件删除,使用官方提供的库文件audio.primary.mini210.so
audio_policy.mini210.so,加载日志如下:
I/AudioFlinger( 1490): Loaded primary audio interface from LEGACY Audio HW HAL (audio)
I/AudioFlinger( 1490): Using 'LEGACY Audio HW HAL' (audio.primary) as the primary audio interface
I/AudioFlinger( 1490): Loaded a2dp audio interface from A2DP Audio HW HAL (audio)
D/AudioHardwareInterface( 1490): setMode(NORMAL)
I/CameraService( 1490): CameraService started (pid=1490)
I/AudioFlinger( 1490): AudioFlinger's thread 0x16bf5e8 ready to run
W/AudioFlinger( 1490): Thread AudioOut_1 cannot connect to the power manager service
D/AudioHardware( 1490): AudioStreamOutALSA::setParameters() routing=2
D/AudioHardware( 1490): ### setVoiceVolume_l
I/AudioPolicyService( 1490): Loaded audio policy from LEGACY Audio Policy HAL (audio_policy)
请教一下,光盘中提供的device/mini210/libaudio 的源代码是完整可编译的代码还是只是部分代码 或者是说 我的编译步骤出现了错误???
谢谢各位了!!