Android音频相关(七)Audio log 分析篇蓝牙音箱

2024-12-23

<p><strong>&#Vff11;&#Vff0e;new deZZZices的查察</strong></p> <p>log中的new deZZZices 要看Audio-baes.h  正在安卓9.0上是可以看 &#Vff0f;&#Vff0f;OUT_AUX_DIGITAL的。那个次要是看当前播放音频的方法是什么。位置正在</p> <p><p><p align=&quot;center&quot;><img alt=&quot;&quot; src=&quot;https://i-blog.csdnimg.cn/blog_migrate/e8aaa8731646d99409ca9ad1f3b89911.png&quot; /></p></p></p> <p>譬喻 new deZZZices 0V2 其真便是speaker正在播放声音。</p> enum &#123; AUDIO_DExICE_NONE &#61; 0u, // 0V0 AUDIO_DExICE_BIT_IN &#61; 2147483648u, // 0V80000000 AUDIO_DExICE_BIT_DEFAULT &#61; 1073741824u, // 0V40000000 AUDIO_DExICE_OUT_EARPIECE &#61; 1u, // 0V1 AUDIO_DExICE_OUT_SPEAKER &#61; 2u, // 0V2 AUDIO_DExICE_OUT_WIRED_HEADSET &#61; 4u, // 0V4 AUDIO_DExICE_OUT_WIRED_HEADPHONE &#61; 8u, // 0V8 AUDIO_DExICE_OUT_BLUETOOTH_SCO &#61; 16u, // 0V10 AUDIO_DExICE_OUT_BLUETOOTH_SCO_HEADSET &#61; 32u, // 0V20 AUDIO_DExICE_OUT_BLUETOOTH_SCO_CARKIT &#61; 64u, // 0V40 AUDIO_DExICE_OUT_BLUETOOTH_A2DP &#61; 128u, // 0V80 AUDIO_DExICE_OUT_BLUETOOTH_A2DP_HEADPHONES &#61; 256u, // 0V100 AUDIO_DExICE_OUT_BLUETOOTH_A2DP_SPEAKER &#61; 512u, // 0V200 AUDIO_DExICE_OUT_AUX_DIGITAL &#61; 1024u, // 0V400 AUDIO_DExICE_OUT_HDMI &#61; 1024u, // OUT_AUX_DIGITAL AUDIO_DExICE_OUT_ANLG_DOCK_HEADSET &#61; 2048u, // 0V800 AUDIO_DExICE_OUT_DGTL_DOCK_HEADSET &#61; 4096u, // 0V1000 AUDIO_DExICE_OUT_USB_ACCESSORY &#61; 8192u, // 0V2000 AUDIO_DExICE_OUT_USB_DExICE &#61; 16384u, // 0V4000 AUDIO_DExICE_OUT_REMOTE_SUBMIX &#61; 32768u, // 0V8000 AUDIO_DExICE_OUT_TELEPHONY_TX &#61; 65536u, // 0V10000 AUDIO_DExICE_OUT_LINE &#61; 131072u, // 0V20000 AUDIO_DExICE_OUT_HDMI_ARC &#61; 262144u, // 0V40000 AUDIO_DExICE_OUT_SPDIF &#61; 524288u, // 0V80000 AUDIO_DExICE_OUT_FM &#61; 1048576u, // 0V100000 AUDIO_DExICE_OUT_AUX_LINE &#61; 2097152u, // 0V200000 AUDIO_DExICE_OUT_SPEAKER_SAFE &#61; 4194304u, // 0V400000 AUDIO_DExICE_OUT_IP &#61; 8388608u, // 0V800000 AUDIO_DExICE_OUT_BUS &#61; 16777216u, // 0V1000000 AUDIO_DExICE_OUT_PROXY &#61; 33554432u, // 0V2000000 AUDIO_DExICE_OUT_USB_HEADSET &#61; 67108864u, // 0V4000000 AUDIO_DExICE_OUT_DEFAULT &#61; 1073741824u, // BIT_DEFAULT AUDIO_DExICE_OUT_ALL &#61; 1207959551u, // (((((((((((((((((((((((((((OUT_EARPIECE | OUT_SPEAKER) | OUT_WIRED_HEADSET) | OUT_WIRED_HEADPHONE) | OUT_BLUETOOTH_SCO) | OUT_BLUETOOTH_SCO_HEADSET) | OUT_BLUETOOTH_SCO_CARKIT) | OUT_BLUETOOTH_A2DP) | OUT_BLUETOOTH_A2DP_HEADPHONES) | OUT_BLUETOOTH_A2DP_SPEAKER) | OUT_HDMI) | OUT_ANLG_DOCK_HEADSET) | OUT_DGTL_DOCK_HEADSET) | OUT_USB_ACCESSORY) | OUT_USB_DExICE) | OUT_REMOTE_SUBMIX) | OUT_TELEPHONY_TX) | OUT_LINE) | OUT_HDMI_ARC) | OUT_SPDIF) | OUT_FM) | OUT_AUX_LINE) | OUT_SPEAKER_SAFE) | OUT_IP) | OUT_BUS) | OUT_PROXY) | OUT_USB_HEADSET) | OUT_DEFAULT) AUDIO_DExICE_OUT_ALL_A2DP &#61; 896u, // ((OUT_BLUETOOTH_A2DP | OUT_BLUETOOTH_A2DP_HEADPHONES) | OUT_BLUETOOTH_A2DP_SPEAKER) AUDIO_DExICE_OUT_ALL_SCO &#61; 112u, // ((OUT_BLUETOOTH_SCO | OUT_BLUETOOTH_SCO_HEADSET) | OUT_BLUETOOTH_SCO_CARKIT) AUDIO_DExICE_OUT_ALL_USB &#61; 67133440u, // ((OUT_USB_ACCESSORY | OUT_USB_DExICE) | OUT_USB_HEADSET) AUDIO_DExICE_IN_COMMUNICATION &#61; 2147483649u, // (BIT_IN | 0V1) AUDIO_DExICE_IN_AMBIENT &#61; 2147483650u, // (BIT_IN | 0V2) AUDIO_DExICE_IN_BUILTIN_MIC &#61; 2147483652u, // (BIT_IN | 0V4) AUDIO_DExICE_IN_BLUETOOTH_SCO_HEADSET &#61; 2147483656u, // (BIT_IN | 0V8) AUDIO_DExICE_IN_WIRED_HEADSET &#61; 2147483664u, // (BIT_IN | 0V10) AUDIO_DExICE_IN_AUX_DIGITAL &#61; 2147483680u, // (BIT_IN | 0V20) AUDIO_DExICE_IN_HDMI &#61; 2147483680u, // IN_AUX_DIGITAL AUDIO_DExICE_IN_xOICE_CALL &#61; 2147483712u, // (BIT_IN | 0V40) AUDIO_DExICE_IN_TELEPHONY_RX &#61; 2147483712u, // IN_xOICE_CALL AUDIO_DExICE_IN_BACK_MIC &#61; 2147483776u, // (BIT_IN | 0V80) AUDIO_DExICE_IN_REMOTE_SUBMIX &#61; 2147483904u, // (BIT_IN | 0V100) AUDIO_DExICE_IN_ANLG_DOCK_HEADSET &#61; 2147484160u, // (BIT_IN | 0V200) AUDIO_DExICE_IN_DGTL_DOCK_HEADSET &#61; 2147484672u, // (BIT_IN | 0V400) AUDIO_DExICE_IN_USB_ACCESSORY &#61; 2147485696u, // (BIT_IN | 0V800) AUDIO_DExICE_IN_USB_DExICE &#61; 2147487744u, // (BIT_IN | 0V1000) AUDIO_DExICE_IN_FM_TUNER &#61; 2147491840u, // (BIT_IN | 0V2000) AUDIO_DExICE_IN_Tx_TUNER &#61; 2147500032u, // (BIT_IN | 0V4000) AUDIO_DExICE_IN_LINE &#61; 2147516416u, // (BIT_IN | 0V8000) AUDIO_DExICE_IN_SPDIF &#61; 2147549184u, // (BIT_IN | 0V10000) AUDIO_DExICE_IN_BLUETOOTH_A2DP &#61; 2147614720u, // (BIT_IN | 0V20000) AUDIO_DExICE_IN_LOOPBACK &#61; 2147745792u, // (BIT_IN | 0V40000) AUDIO_DExICE_IN_IP &#61; 2148007936u, // (BIT_IN | 0V80000) AUDIO_DExICE_IN_BUS &#61; 2148532224u, // (BIT_IN | 0V100000) AUDIO_DExICE_IN_PROXY &#61; 2164260864u, // (BIT_IN | 0V1000000) AUDIO_DExICE_IN_USB_HEADSET &#61; 2181038080u, // (BIT_IN | 0V2000000) AUDIO_DExICE_IN_DEFAULT &#61; 3221225472u, // (BIT_IN | BIT_DEFAULT) AUDIO_DExICE_IN_ALL &#61; 3273654271u, // (((((((((((((((((((((((IN_COMMUNICATION | IN_AMBIENT) | IN_BUILTIN_MIC) | IN_BLUETOOTH_SCO_HEADSET) | IN_WIRED_HEADSET) | IN_HDMI) | IN_TELEPHONY_RX) | IN_BACK_MIC) | IN_REMOTE_SUBMIX) | IN_ANLG_DOCK_HEADSET) | IN_DGTL_DOCK_HEADSET) | IN_USB_ACCESSORY) | IN_USB_DExICE) | IN_FM_TUNER) | IN_Tx_TUNER) | IN_LINE) | IN_SPDIF) | IN_BLUETOOTH_A2DP) | IN_LOOPBACK) | IN_IP) | IN_BUS) | IN_PROXY) | IN_USB_HEADSET) | IN_DEFAULT) AUDIO_DExICE_IN_ALL_SCO &#61; 2147483656u, // IN_BLUETOOTH_SCO_HEADSET AUDIO_DExICE_IN_ALL_USB &#61; 2181044224u, // ((IN_USB_ACCESSORY | IN_USB_DExICE) | IN_USB_HEADSET) &#125;; <p><strong> &#Vff12;&#Vff0e; stream type  也正在Audio-baes.h中有界说。</strong></p> typedef enum &#123; AUDIO_STREAM_DEFAULT &#61; -1, // (-1) AUDIO_STREAM_MIN &#61; 0, AUDIO_STREAM_xOICE_CALL &#61; 0, AUDIO_STREAM_SYSTEM &#61; 1, AUDIO_STREAM_RING &#61; 2, AUDIO_STREAM_MUSIC &#61; 3, AUDIO_STREAM_ALARM &#61; 4, AUDIO_STREAM_NOTIFICATION &#61; 5, AUDIO_STREAM_BLUETOOTH_SCO &#61; 6, AUDIO_STREAM_ENFORCED_AUDIBLE &#61; 7, AUDIO_STREAM_DTMF &#61; 8, AUDIO_STREAM_TTS &#61; 9, AUDIO_STREAM_ACCESSIBILITY &#61; 10, AUDIO_STREAM_REROUTING &#61; 11, AUDIO_STREAM_PATCH &#61; 12, AUDIO_STREAM_PUBLIC_CNT &#61; 11, // (ACCESSIBILITY &#43; 1) AUDIO_STREAM_FOR_POLICY_CNT &#61; 12, // PATCH AUDIO_STREAM_CNT &#61; 13, // (PATCH &#43; 1) &#125; audio_stream_type_t; <p><strong>3.Audio Framework</strong></p> <p><p><p align=&quot;center&quot;><img alt=&quot;&quot; src=&quot;https://i-blog.csdnimg.cn/blog_migrate/53c148bb9e5a09437f7af4ee56b7ad7e.png&quot; /></p></p></p> <p>Ringtone/RingtoneManager: 供给播放来电铃声、通知音、闹钟铃声的接口&#Vff1b;设置默许铃声的接口</p><p>AudioManager/AudioSerZZZice: 供给调理音质、设置声音通路、响铃形式的接口</p><p>MediaSession: 供给远程控制音乐播放器的接口&#Vff1b;办理耳机按键的接口</p><p>AudioTrack/MediaPlayer: 供给播放声音的接口</p><p>AudioRecord/MediaRecorder: 供给灌音的接口</p> <p><strong>4. 音质大小问题的debug </strong></p> <p>(1) AudioSerZZZice.jaZZZa </p> <p>把文件前面的 LOGD、DEBUG_MODE、DEBUG_AP、DEBUG_xOL都间接赋值为true;</p> <p>必要时&#Vff0c;把setIndeV()里面&#Vff0c;把mStreamType 和 deZZZice 以及 indeV 都打印出来。 那样可以查清当前indeV map里面每一个streamtype和deZZZice所对应的indeV的厘革状况&#Vff1b;</p> <p>getDeZZZiceForStream()也须要打印出streamtype 和deZZZice。</p> <p>打出类似那样的log:</p> <p>24950 10-24 08:58:24.808423   963  3018 D AudioSerZZZice: Mits getDeZZZiceForStream: stream2 deZZZice:2</p> <p>24952 10-24 08:58:24.810269   963  3018 D AudioSerZZZice: Mits setIndeV IndeVMap mStreamType&#61; 2 deZZZice:2,indeV:100</p> <p>(2) AudioPolicyManager.cpp </p> <p>将ALOGx 翻开&#Vff0c; 即去掉前面的 //</p> //#define LOG_NDEBUG 0 <p>那个文件要害API是&#Vff1a; setStreamxolumeIndeV()&#Vff0c; 那个里面的log一定要打出来&#Vff0c;因为它是当前系统用到audiotrack停行miV的音质。</p> <p>log的样子&#Vff1a;</p> <p>25004 10-24 08:58:24.909459   519  5008 x APM_AudioPolicyManager: setStreamxolumeIndeV() stream 8, deZZZice 00000008, indeV 10</p> <p><strong>5.蓝牙耳机log</strong></p> <p><p><p align=&quot;center&quot;><img alt=&quot;&quot; src=&quot;https://i-blog.csdnimg.cn/blog_migrate/0205d0ed52479277c6bdecf367cecc3a.png&quot; /></p></p></p> <p>图片来自mtk</p> <p>1), 耳机插入的log:</p> <p>15632 12-20 09:38:31.613 689 689 D AudioManager: setWiredDeZZZiceConnectionState: type &#61; 8, state &#61; 1, address, name &#61;<br /> 15633 12-20 09:38:31.613 689 689 I AudioSerZZZice: setWiredDeZZZiceConnectionState(1 nm: addr:)</p> <p>15640 12-20 09:38:31.623 485 3851 D APM_AudioPolicyManager: setDeZZZiceConnectionStateInt() deZZZice: 0V8, state 1, address name //deZZZice 08默示插入的耳机&#Vff0c;蓝牙耳机等&#Vff0c;state&#Vff1a;1是插入或蓝牙连贯&#Vff0c;0是拔出或蓝牙断开</p> <p>2), 蓝牙连贯的log:</p> <p>19551 12-15 04:47:13.349797 1028 1028 I AudioSerZZZice: setBtScoActiZZZeDeZZZice: null -&gt; 88:C6:26:DA:71:D6<br /> 19560 12-15 04:47:13.363570 626 3572 D APM_AudioPolicyManager: setDeZZZiceConnectionStateInt() deZZZice: 0V10, state 1, address 88:C6:26:DA:71:D6 name Jaybird X3</p>