Android Audio代码分析8 - AudioHardwareALSA::openOutputStream函数
发现以前写的东西,对调用函数的展开放在了函数的前面,导致不方便找到原来代码及设置的函数参数。
以后打算稍作改动,把对被调函数的展开放在原代码的后面,这样看起来应该方便些。
闲言少叙,跳入代码。
前两天看AudioTrack创建的时候,我们看到了AudioHardwareALSA::openOutputStream,并没有继续往下看。
今天就看看函数AudioHardwareALSA::openOutputStream的实现。
*****************************************源码*************************************************
**********************************************************************************************
源码路径:
hardware\alsa_sound\AudioHardwareALSA.cpp
###########################################说明################################################
###############################################################################################
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&总结&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
函数openOutputStream的功能:
1、从mDeviceList中寻找匹配的设备。
寻找的依据是传入的参数devices。
参数devices是首先根据stream type获得strategy,然后再根据strategy取得的。
mDeviceList的内容是从_defaults[]数组中copy过来的。
若要使自己的声卡工作,需要在_defaults[]中加入自己声卡的信息,或者修改函数s_init的实现方式。
2、调用函数s_open,得到一个alsa_handle_t指针。
3、根据得到的alsa_handle_t指针创建一个AudioStreamOutALSA对象。
4、调用AudioStreamOutALSA对象的set函数设置stream的格式,声道和采样率。
5、至此,就完成了output stream的创建。
6、调用AudioStreamOutALSA对象的write函数即可实现播放。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
以后打算稍作改动,把对被调函数的展开放在原代码的后面,这样看起来应该方便些。
闲言少叙,跳入代码。
前两天看AudioTrack创建的时候,我们看到了AudioHardwareALSA::openOutputStream,并没有继续往下看。
今天就看看函数AudioHardwareALSA::openOutputStream的实现。
*****************************************源码*************************************************
**********************************************************************************************
源码路径:
hardware\alsa_sound\AudioHardwareALSA.cpp
###########################################说明################################################
###############################################################################################
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&总结&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
函数openOutputStream的功能:
1、从mDeviceList中寻找匹配的设备。
寻找的依据是传入的参数devices。
参数devices是首先根据stream type获得strategy,然后再根据strategy取得的。
mDeviceList的内容是从_defaults[]数组中copy过来的。
若要使自己的声卡工作,需要在_defaults[]中加入自己声卡的信息,或者修改函数s_init的实现方式。
2、调用函数s_open,得到一个alsa_handle_t指针。
3、根据得到的alsa_handle_t指针创建一个AudioStreamOutALSA对象。
4、调用AudioStreamOutALSA对象的set函数设置stream的格式,声道和采样率。
5、至此,就完成了output stream的创建。
6、调用AudioStreamOutALSA对象的write函数即可实现播放。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&