安卓音频之dumpsys audio
目录
概述
详述 dumpsys audio
1、音频服务生命周期的事件日志
2、音频焦点事件日志
3、音频流音量信息
4、音量组和设备的相关信息
5、铃声模式
6、音频路由
7、其他状态信息
8、播放活动监控信息
9、录音活动记录
10、AudioDeviceBroker 的记录
11、音效(SoundEffects)信息
12、音频事件日志 - 通话状态
13、音频事件日志 - 蓝牙
14、音频事件日志 - 用户指定设备记录
15、音频事件日志 - 音量变量记录
概述
除了音频日志,当前的音频状态。 音量,通话模式,可用音频设备,以及音频设置历史等都在AudioService中。而混音状态是在AudioFlinger中。 在音频问题定位中,这些信息是很有必要的。
详述 dumpsys audio
1、音频服务生命周期的事件日志
udio event log: audio services lifecycle
11-07 09:27:41:377 AudioService()
11-07 09:39:41:773 onAudioServerDied() audioserver died
11-07 09:39:42:274 onAudioServerDied() audioserver started
11-07 09:39:43:123 after audioserver restart: initStreamVolume succeeded
11-07 09:45:52:654 onAudioServerDied() audioserver died
11-07 09:45:53:156 onAudioServerDied() audioserver started
11-07 09:45:53:960 after audioserver restart: initStreamVolume succeeded
11-07 09:59:36:019 onAudioServerDied() audioserver died
11-07 09:59:36:521 onAudioServerDied() audioserver started
11-07 09:59:37:160 after audioserver restart: initStreamVolume succeeded
根据音频服务生命周期的事件日志,以下是记录的音频服务活动:
- 11-07 09:27:41:377:AudioService() 被调用
- 11-07 09:39:41:773:onAudioServerDied() 音频服务器关闭
- 11-07 09:39:42:274:onAudioServerDied() 音频服务器重新启动
- 11-07 09:39:43:123:音频服务器重新启动后:initStreamVolume 成功
- 11-07 09:45:52:654:onAudioServerDied() 音频服务器关闭
- 11-07 09:45:53:156:onAudioServerDied() 音频服务器重新启动
- 11-07 09:45:53:960:音频服务器重新启动后:initStreamVolume 成功
- 11-07 09:59:36:019:onAudioServerDied() 音频服务器关闭
- 11-07 09:59:36:521:onAudioServerDied() 音频服务器重新启动
- 11-07 09:59:37:160:音频服务器重新启动后:initStreamVolume 成功
2、音频焦点事件日志
Message handler (watch for unhandled messages):Handler (com.android.server.audio.AudioService$AudioHandler) {6bd4ea7} @ 3315769Looper (AudioService, tid 90) {8bb8f54}(Total messages: 0, polling=true, quitting=false)MediaFocusControl dump time: 上午10:22:45Audio Focus stack entries (last is top of stack):source:android.os.BinderProxy@c7fcefd -- pack: com.ctg.itrdc.clouddesk -- client: android.media.AudioManager@9d8338dcom.iiordanov.clink.audio.i@cd11942 -- gain: GAIN -- flags: -- loss: none -- notified: true -- uid: 10094 -- attr: AudioAttributes: usage=USAGE_MEDIA content=CONTENT_TYPE_MUSIC flags=0x800 tags= bundle=null -- sdk:30No external focus policyNotify on duck: trueIn ring or call: falseAudio event log: focus commands as seen by MediaFocusControl
11-07 09:28:14:181 requestAudioFocus() from uid/pid 10094/1918 clientId=android.media.AudioManager@9d8338dcom.iiordanov.clink.audio.i@cd11942 callingPack=com.ctg.itrdc.clouddesk req=1 flags=0x0 sdk=30
Multi Audio Focus enabled :false
根据音频焦点事件日志,以下是记录的音频焦点相关活动:
-
最后的音频焦点堆栈条目:source:android.os.BinderProxy@c7fcefd – pack: com.ctg.itrdc.clouddesk – client: android.media.AudioManager@9d8338dcom.iiordanov.clink.audio.i@cd11942 – gain: GAIN – flags: – loss: none – notified: true – uid: 10094 – attr: AudioAttributes: usage=USAGE_MEDIA content=CONTENT_TYPE_MUSIC flags=0x800 tags= bundle=null – sdk:30
-
外部焦点策略:无
-
响应"duck"通知:是
-
在振铃或通话中:否
-
Multi Audio Focus 是否启用:否
3、音频流音量信息
Stream volumes (device: index)
- STREAM_VOICE_CALL:Muted: falseMuted Internally: falseMin: 1Max: 15streamVolume:15Current: 2 (speaker): 15, 4 (headset): 11, 80 (bt_a2dp): 15, 4000000 (usb_headset): 9, 40000000 (default): 11Devices: speaker
- STREAM_SYSTEM:Muted: falseMuted Internally: falseMin: 0Max: 7streamVolume:7Current: 2 (speaker): 7, 40000000 (default): 5Devices: speaker
- STREAM_RING:Muted: falseMuted Internally: falseMin: 0Max: 7streamVolume:7Current: 2 (speaker): 7, 40000000 (default): 5Devices: speaker
- STREAM_MUSIC:Muted: falseMuted Internally: falseMin: 0Max: 15streamVolume:15Current: 2 (speaker): 15, 4 (headset): 15, 20 (bt_sco_hs): 15, 80 (bt_a2dp): 15, 4000000 (usb_headset): 9, 40000000 (default): 15Devices: speaker
- STREAM_ALARM:Muted: falseMuted Internally: falseMin: 1Max: 7streamVolume:6Current: 40000000 (default): 6Devices: speaker
- STREAM_NOTIFICATION:Muted: falseMuted Internally: falseMin: 0Max: 7streamVolume:7Current: 2 (speaker): 7, 40000000 (default): 5Devices: speaker
- STREAM_BLUETOOTH_SCO:Muted: falseMuted Internally: falseMin: 0Max: 15streamVolume:15Current: 2 (speaker): 15, 20 (bt_sco_hs): 7, 80 (bt_a2dp): 15, 4000000 (usb_headset): 9, 40000000 (default): 7Devices: speaker
- STREAM_SYSTEM_ENFORCED:Muted: falseMuted Internally: falseMin: 0Max: 7streamVolume:7Current: 2 (speaker): 7, 40000000 (default): 5Devices: speaker
- STREAM_DTMF:Muted: falseMuted Internally: falseMin: 0Max: 15streamVolume:15Current: 2 (speaker): 15, 4 (headset): 15, 20 (bt_sco_hs): 15, 80 (bt_a2dp): 15, 4000000 (usb_headset): 9, 40000000 (default): 15Devices: speaker
- STREAM_TTS:Muted: falseMuted Internally: falseMin: 0Max: 15streamVolume:15Current: 2 (speaker): 15, 4 (headset): 15, 20 (bt_sco_hs): 15, 80 (bt_a2dp): 15, 4000000 (usb_headset): 9, 40000000 (default): 15Devices: speaker
- STREAM_ACCESSIBILITY:Muted: falseMuted Internally: falseMin: 1Max: 15streamVolume:15Current: 2 (speaker): 15, 4 (headset): 15, 20 (bt_sco_hs): 15, 80 (bt_a2dp): 15, 4000000 (usb_headset): 9, 40000000 (default): 15Devices: speaker
- STREAM_ASSISTANT:Muted: falseMuted Internally: falseMin: 0Max: 15streamVolume:15Current: 2 (speaker): 15, 4 (headset): 15, 20 (bt_sco_hs): 15, 80 (bt_a2dp): 15, 4000000 (usb_headset): 9, 40000000 (default): 15Devices: speaker
- mute affected streams = 0x6f
以下是不同音频流的设置:
- STREAM_VOICE_CALL(通话音频流):
- 静音:否
- 内部静音:否
- 最小音量:1
- 最大音量:15
- 流音量:15
- 当前活动设备音量:2(扬声器):15,4(耳机):11,80(蓝牙A2DP):15,4000000(USB耳机):9,40000000(默认):11
- 设备:扬声器
- STREAM_SYSTEM(系统音频流):
- 静音:否
- 内部静音:否
- 最小音量:0
- 最大音量:7
- 流音量:7
- 当前活动设备音量:2(扬声器):7,40000000(默认):5
- 设备:扬声器
- STREAM_RING(铃声音频流):
- 静音:否
- 内部静音:否
- 最小音量:0
- 最大音量:7
- 流音量:7
- 当前活动设备音量:2(扬声器):7,40000000(默认):5
- 设备:扬声器
- STREAM_MUSIC(音乐音频流):
- 静音:否
- 内部静音:否
- 最小音量:0
- 最大音量:15
- 流音量:15
- 当前活动设备音量:2(扬声器):15,4(耳机):15,20(蓝牙SCO耳机):15,80(蓝牙A2DP):15,4000000(USB耳机):9,40000000(默认):15
- 设备:扬声器
- STREAM_ALARM(闹钟音频流):
- 静音:否
- 内部静音:否
- 最小音量:1
- 最大音量:7
- 流音量:6
- 当前活动设备音量:40000000(默认):6
- 设备:扬声器
- STREAM_NOTIFICATION(通知音频流):
- 静音:否
- 内部静音:否
- 最小音量:0
- 最大音量:7
- 流音量:7
- 当前活动设备音量:2(扬声器):7,40000000(默认):5
- 设备:扬声器
- STREAM_BLUETOOTH_SCO(蓝牙SCO音频流):
- 静音:否
- 内部静音:否
- 最小音量:0
- 最大音量:15
- 流音量:15
- 当前活动设备音量:2(扬声器):15,20(蓝牙SCO耳机):7,80(蓝牙A2DP):15,4000000(USB耳机):9,40000000(默认):7
- 设备:扬声器
- STREAM_SYSTEM_ENFORCED(强制系统音频流):
- 静音:否
- 内部静音:否
- 最小音量:0
- 最大音量:7
- 流音量:7
- 当前活动设备音量:2(扬声器):7,40000000(默认):5
- 设备:扬声器
- STREAM_DTMF(DTMF音频流):
- 静音:否
- 内部静音:否
- 最小音量:0
- 最大音量:15
- 流音量:15
- 当前活动设备音量:2(扬声器):15,4(耳机):15,20(蓝牙SCO耳机):15,80(蓝牙A2DP):15,4000000(USB耳机):9,40000000(默认):15
- 设备:扬声器
- STREAM_TTS(文本转语音音频流):
- 静音:否
- 内部静音:否
- 最小音量:0
- 最大音量:15
- 流音量:15
- 当前活动设备音量:2(扬声器):15,4(耳机):15,20(蓝牙SCO耳机):15,80(蓝牙A2DP):15,4000000(USB耳机):9,40000000(默认):15
- 设备:扬声器
- STREAM_ACCESSIBILITY(辅助功能音频流):
- 静音:否
- 内部静音:否
- 最小音量:1
- 最大音量:15
- 流音量:15
- 当前活动设备音量:2(扬声器):15,4(耳机):15,20(蓝牙SCO耳机):15,80(蓝牙A2DP):15,4000000(USB耳机):9,40000000(默认):15
- 设备:扬声器
- STREAM_ASSISTANT(助手音频流):
- 静音:否
- 内部静音:否
- 最小音量:0
- 最大音量:15
- 流音量:15
- 当前活动设备音量:2(扬声器):15,4(耳机):15,20(蓝牙SCO耳机):15,80(蓝牙A2DP):15,4000000(USB耳机):9,40000000(默认):15
- 设备:扬声器
- 受静音影响的音频流:0x6f
4、音量组和设备的相关信息
Volume Groups (device: index)
- VOLUME GROUP AUDIO_STREAM_ACCESSIBILITY:Min: 1Max: 15Current: 40000000 (default): 15Devices: speaker
- VOLUME GROUP AUDIO_STREAM_ALARM:Min: 1Max: 7Current: 40000000 (default): 6Devices: speaker
- VOLUME GROUP AUDIO_STREAM_DTMF:Min: 0Max: 15Current: 40000000 (default): 15Devices: speaker
- VOLUME GROUP AUDIO_STREAM_ENFORCED_AUDIBLE:Min: 0Max: 7Current: 40000000 (default): 5Devices: speaker
- VOLUME GROUP AUDIO_STREAM_MUSIC:Min: 0Max: 15Current: 40000000 (default): 15Devices: speaker
- VOLUME GROUP AUDIO_STREAM_NOTIFICATION:Min: 0Max: 7Current: 40000000 (default): 5Devices: speaker
- VOLUME GROUP AUDIO_STREAM_REROUTING:Min: 0Max: 15Current: 40000000 (default): 15Devices: speaker
- VOLUME GROUP AUDIO_STREAM_RING:Min: 0Max: 7Current: 40000000 (default): 5Devices: speaker
- VOLUME GROUP AUDIO_STREAM_SYSTEM:Min: 0Max: 7Current: 40000000 (default): 5Devices: speaker
- VOLUME GROUP AUDIO_STREAM_VOICE_CALL:Min: 1Max: 15Current: 40000000 (default): 11Devices: speaker
- VOLUME GROUP AUDIO_STREAM_ASSISTANT:Min: 0Max: 15Current: 40000000 (default): 15Devices: speaker
- VOLUME GROUP AUDIO_STREAM_CALL_ASSISTANT:Min: 0Max: 15Current: 40000000 (default): 15Devices: speaker
音量组和设备的相关信息如下:
- 音频流 ACCESSIBILITY(辅助功能音频流):
- 最小音量:1
- 最大音量:15
- 当前音量:40000000(默认):15
- 设备:扬声器
- 音频流 ALARM(闹钟音频流):
- 最小音量:1
- 最大音量:7
- 当前音量:40000000(默认):6
- 设备:扬声器
- 音频流 DTMF(DTMF音频流):
- 最小音量:0
- 最大音量:15
- 当前音量:40000000(默认):15
- 设备:扬声器
- 音频流 ENFORCED_AUDIBLE(强制可听音频流):
- 最小音量:0
- 最大音量:7
- 当前音量:40000000(默认):5
- 设备:扬声器
- 音频流 MUSIC(音乐音频流):
- 最小音量:0
- 最大音量:15
- 当前音量:40000000(默认):15
- 设备:扬声器
- 音频流 NOTIFICATION(通知音频流):
- 最小音量:0
- 最大音量:7
- 当前音量:40000000(默认):5
- 设备:扬声器
- 音频流 REROUTING(重定向音频流):
- 最小音量:0
- 最大音量:15
- 当前音量:40000000(默认):15
- 设备:扬声器
- 音频流 RING(铃声音频流):
- 最小音量:0
- 最大音量:7
- 当前音量:40000000(默认):5
- 设备:扬声器
- 音频流 SYSTEM(系统音频流):
- 最小音量:0
- 最大音量:7
- 当前音量:40000000(默认):5
- 设备:扬声器
- 音频流 VOICE_CALL(通话音频流):
- 最小音量:1
- 最大音量:15
- 当前音量:40000000(默认):11
- 设备:扬声器
- 音频流 ASSISTANT(助手音频流):
- 最小音量:0
- 最大音量:15
- 当前音量:40000000(默认):15
- 设备:扬声器
- 音频流 CALL_ASSISTANT(通话助手音频流):
- 最小音量:0
- 最大音量:15
- 当前音量:40000000(默认):15
- 设备:扬声器
5、铃声模式
Ringer mode:
- mode (internal) = NORMAL
- mode (external) = NORMAL
- zen mode:ZEN_MODE_OFF
- ringer mode affected streams = 0x1a6 (STREAM_SYSTEM,STREAM_RING,STREAM_NOTIFICATION,STREAM_SYSTEM_ENFORCED,STREAM_DTMF)
- ringer mode muted streams = 0x0
- delegate = ZenModeHelper
铃声模式的相关信息如下:
- 内部铃声模式:NORMAL(正常模式)
- 外部铃声模式:NORMAL(正常模式)
- 免打扰模式(Zen Mode):ZEN_MODE_OFF(关闭免打扰模式)
- 受铃声模式影响的音频流:0x1a6(STREAM_SYSTEM、STREAM_RING、STREAM_NOTIFICATION、STREAM_SYSTEM_ENFORCED、STREAM_DTMF)
- 静音的音频流:0x0(没有音频流被静音)
- 铃声模式委托:ZenModeHelper
Zen Mode(免打扰模式)是一种在 Android 设备上提供静音和通知管理功能的特殊模式。它旨在帮助用户在特定情况下专注、放松或避免打扰。以下是 Zen Mode 的成员和功能:
Automatic rules(自动规则):Zen Mode 允许用户创建自动规则,根据时间、地点或事件来自动启用或禁用免打扰模式。例如,在特定时间段(如晚上)自动开启静音模式,或者在某个地点(如办公室)开启勿扰模式。
Notifications management(通知管理):Zen Mode 允许用户定义哪些通知可以在免打扰模式下显示,哪些通知应被完全屏蔽。用户可以自定义允许显示的应用程序和通知类型,以便只接收重要的通知。
Downtime(静默时段):Zen Mode 允许用户设置静默时段,即指定一段时期内设备完全静音并屏蔽所有通知。这可以帮助用户保持专注,如在睡眠期间或进行重要任务时。
Event-driven mode(事件驱动模式):Zen Mode 还可以根据特定的事件触发免打扰模式。例如,在与指定联系人进行通话时自动进入勿扰模式,以确保不被其他通知干扰。
Zen Mode 旨在为用户提供更好的通知和声音管理体验,帮助用户在需要时获得更好的专注和放松。用户可以根据自己的需求和偏好进行个性化配置。
6、音频路由
Audio routes:mMainType=0x0mBluetoothName=null
音频路由指的是音频信号从源设备传输到输出设备的路径。根据提供的信息,这里有两个关键的属性:
mMainType=0x0:这表示主要的音频路由类型为 0x0。
mBluetoothName=null:这表示蓝牙设备的名称为空,即没有连接任何蓝牙设备。
7、其他状态信息
Other state:mVolumeController=VolumeController(android.os.BinderProxy@260eb89,mVisible=false)mSafeMediaVolumeState=SAFE_MEDIA_VOLUME_DISABLEDmSafeMediaVolumeIndex=100mSafeUsbMediaVolumeIndex=30mSafeUsbMediaVolumeDbfs=-37.0sIndependentA11yVolume=falsemPendingVolumeCommand=nullmMusicActiveMs=0mMcc=0mCameraSoundForced=falsemHasVibrator=falsemVolumePolicy=VolumePolicy[volumeDownToEnterSilent=false,volumeUpToExitSilent=false,doNotDisturbWhenSilent=false,vibrateToSilentDebounce=400]mAvrcpAbsVolSupported=truemIsSingleVolume=falsemUseFixedVolume=falsemFixedVolumeDevices=0x1000,0x800,0x200000,0x40000,0x80000mExtVolumeController=nullmHdmiCecSink=falsemHdmiAudioSystemClient=nullmHdmiPlaybackClient=nullmHdmiTvClient=nullmHdmiSystemAudioSupported=falsemHdmiCecVolumeControlEnabled=falsemIsCallScreeningModeSupported=falsemic mute FromSwitch=false FromRestrictions=false FromApi=false from system=false
Audio policies:
Audio event log: dynamic policy events (logged when command received by AudioService)
提供的其他状态信息如下:
1. mVolumeController:音量控制器对象,用于管理音量控制。具体的实现是 VolumeController(android.os.BinderProxy@260eb89),该控制器当前不可见(mVisible=false)。
2. mSafeMediaVolumeState:安全媒体音量状态为SAFE_MEDIA_VOLUME_DISABLED,即安全媒体音量功能已禁用。
3. mSafeMediaVolumeIndex:安全媒体音量索引为100。
4. mSafeUsbMediaVolumeIndex:安全 USB 媒体音量索引为30。
5. mSafeUsbMediaVolumeDbfs:安全 USB 媒体音量的 dBFS 值为-37.0。
6. sIndependentA11yVolume:独立的无障碍音量设置为false。
7. mPendingVolumeCommand:待处理的音量命令为null,即当前没有等待处理的音量命令。
8. mMusicActiveMs:音乐活跃时间为0,表示当前没有正在播放的音乐。
9. mMcc:MCC(Mobile Country Code)为0。
10. mCameraSoundForced:相机声音被强制开启为false。
11. mHasVibrator:设备是否具有震动器为false,表示设备没有震动功能。
12. mVolumePolicy:音量策略为VolumePolicy[volumeDownToEnterSilent=false,volumeUpToExitSilent=false,doNotDisturbWhenSilent=false,vibrateToSilentDebounce=400],根据该策略进行音量调节的行为。
13. mAvrcpAbsVolSupported:支持 AVRCP 绝对音量为true。
14. mIsSingleVolume:是否使用单一音量模式为false,表示没有激活单一音量模式。
15. mUseFixedVolume:是否使用固定音量为false,表示没有启用固定音量。
16. mFixedVolumeDevices:固定音量设备为0x1000,0x800,0x200000,0x40000,0x80000。
17. mExtVolumeController:扩展音量控制器为空。
18. mHdmiCecSink:HDMI CEC(Consumer Electronics Control)Sink状态为false,表示没有连接 HDMI CEC Sink 设备。
19. mHdmiAudioSystemClient:HDMI 音频系统客户端为空。
20. mHdmiPlaybackClient:HDMI 播放客户端为空。
21. mHdmiTvClient:HDMI 电视客户端为空。
22. mHdmiSystemAudioSupported:是否支持 HDMI 系统音频为false。
23. mHdmiCecVolumeControlEnabled:HDMI CEC 音量控制是否启用为false。
24. mIsCallScreeningModeSupported:是否支持呼叫筛选模式为false。
25. mic mute FromSwitch=false FromRestrictions=false FromApi=false from system=false:麦克风静音的来源信息。
8、播放活动监控信息
PlaybackActivityMonitor dump time: 上午10:22:45playback listeners:(S)com.android.server.audio.PlaybackActivityMonitor$PlayMonitorClient@82a67f2 (S)com.android.server.audio.PlaybackActivityMonitor$PlayMonitorClient@ce62e43players:AudioPlaybackConfiguration piid:15 type:android.media.SoundPool u/pid:1000/519 state:idle attr:AudioAttributes: usage=USAGE_ASSISTANCE_SONIFICATION content=CONTENT_TYPE_SONIFICATION flags=0x800 tags= bundle=nullducked players piids:muted player piids:banned uids:
Audio event log: playback activity as reported through PlayerBase
11-07 09:27:42:765 new player piid:15 uid/pid:1000/519 type:android.media.SoundPool attr:AudioAttributes: usage=USAGE_ASSISTANCE_SONIFICATION content=CONTENT_TYPE_SONIFICATION flags=0x800 tags= bundle=null
11-07 09:27:45:614 new player piid:23 uid/pid:10107/721 type:android.media.SoundPool attr:AudioAttributes: usage=USAGE_ASSISTANCE_SONIFICATION content=CONTENT_TYPE_SONIFICATION flags=0x800 tags= bundle=null
11-07 09:28:14:252 new player piid:31 uid/pid:10094/1918 type:unknown attr:AudioAttributes: usage=USAGE_MEDIA content=CONTENT_TYPE_UNKNOWN flags=0x0 tags= bundle=null
11-07 09:28:14:420 player piid:31 state:started
11-07 09:28:15:883 player piid:31 state:stopped
11-07 09:28:15:992 releasing player piid:31
11-07 09:29:03:709 new player piid:47 uid/pid:10094/1918 type:unknown attr:AudioAttributes: usage=USAGE_MEDIA content=CONTENT_TYPE_UNKNOWN flags=0x0 tags= bundle=null
11-07 09:29:03:721 player piid:47 state:started
11-07 09:29:34:724 player piid:47 state:stopped
11-07 09:29:34:835 releasing player piid:47
11-07 09:46:38:540 new player piid:23 uid/pid:10094/1918 type:unknown attr:AudioAttributes: usage=USAGE_MEDIA content=CONTENT_TYPE_UNKNOWN flags=0x0 tags= bundle=null
11-07 09:46:38:619 player piid:23 state:started
11-07 09:47:06:022 player piid:23 state:stopped
11-07 09:47:06:126 releasing player piid:23
11-07 09:47:21:467 new player piid:31 uid/pid:10094/1918 type:unknown attr:AudioAttributes: usage=USAGE_MEDIA content=CONTENT_TYPE_UNKNOWN flags=0x0 tags= bundle=null
11-07 09:47:21:474 player piid:31 state:started
11-07 09:47:48:950 player piid:31 state:stopped
11-07 09:47:49:055 releasing player piid:31
11-07 09:47:58:426 new player piid:39 uid/pid:10094/1918 type:unknown attr:AudioAttributes: usage=USAGE_MEDIA content=CONTENT_TYPE_UNKNOWN flags=0x0 tags= bundle=null
11-07 09:47:58:572 player piid:39 state:started
11-07 09:48:25:933 player piid:39 state:stopped
11-07 09:48:26:039 releasing player piid:39
11-07 10:01:09:253 new player piid:23 uid/pid:10094/1918 type:unknown attr:AudioAttributes: usage=USAGE_MEDIA content=CONTENT_TYPE_UNKNOWN flags=0x0 tags= bundle=null
11-07 10:01:09:260 player piid:23 state:started
11-07 10:01:21:723 player piid:23 state:stopped
11-07 10:01:21:827 releasing player piid:23
11-07 10:04:06:598 new player piid:31 uid/pid:10094/1918 type:unknown attr:AudioAttributes: usage=USAGE_MEDIA content=CONTENT_TYPE_UNKNOWN flags=0x0 tags= bundle=null
11-07 10:04:06:607 player piid:31 state:started
11-07 10:04:22:385 player piid:31 state:stopped
11-07 10:04:22:491 releasing player piid:31
提供的播放活动监控信息如下:
播放监听器:
- (S)com.android.server.audio.PlaybackActivityMonitor$PlayMonitorClient@82a67f2
- (S)com.android.server.audio.PlaybackActivityMonitor$PlayMonitorClient@ce62e43
播放器:
- AudioPlaybackConfiguration piid:15
类型:android.media.SoundPool
uid/pid:1000/519
状态:空闲(idle)
属性:AudioAttributes: usage=USAGE_ASSISTANCE_SONIFICATION content=CONTENT_TYPE_SONIFICATION flags=0x800 tags= bundle=null
Ducked players piids(降低音量的播放器 piid):无
Muted player piids(静音的播放器 piid):无
Banned uids(禁止的 UID):无
音频事件日志(通过 PlayerBase 报告的播放活动):
- 11-07 09:27:42:765 新的播放器 piid:15 uid/pid:1000/519 类型:android.media.SoundPool 属性:AudioAttributes: usage=USAGE_ASSISTANCE_SONIFICATION content=CONTENT_TYPE_SONIFICATION flags=0x800 tags= bundle=null
- 11-07 09:27:45:614 新的播放器 piid:23 uid/pid:10107/721 类型:android.media.SoundPool 属性:AudioAttributes: usage=USAGE_ASSISTANCE_SONIFICATION content=CONTENT_TYPE_SONIFICATION flags=0x800 tags= bundle=null
- 11-07 09:28:14:252 新的播放器 piid:31 uid/pid:10094/1918 类型:unknown 属性:AudioAttributes: usage=USAGE_MEDIA content=CONTENT_TYPE_UNKNOWN flags=0x0 tags= bundle=null
- 11-07 09:28:14:420 播放器 piid:31 状态:started
- 11-07 09:28:15:883 播放器 piid:31 状态:stopped
- 11-07 09:28:15:992 释放播放器 piid:31
- 11-07 09:29:03:709 新的播放器 piid:47 uid/pid:10094/1918 类型:unknown 属性:AudioAttributes: usage=USAGE_MEDIA content=CONTENT_TYPE_UNKNOWN flags=0x0 tags= bundle=null
- 11-07 09:29:03:721 播放器 piid:47 状态:started
- 11-07 09:29:34:724 播放器 piid:47 状态:stopped
- 11-07 09:29:34:835 释放播放器 piid:47
- 11-07 09:46:38:540 新的播放器 piid:23 uid/pid:10094/1918 类型:unknown 属性:AudioAttributes: usage=USAGE_MEDIA content=CONTENT_TYPE_UNKNOWN flags=0x0 tags= bundle=null
- 11-07 09:46:38:619 播放器 piid:23 状态:started
- 11-07 09:47:06:022 播放器 piid:23 状态:stopped
- 11-07 09:47:06:126 释放播放器 piid:23
- 11-07 09:47:21:467 新的播放器 piid:31 uid/pid:10094/1918 类型:unknown 属性:AudioAttributes: usage=USAGE_MEDIA content=CONTENT_TYPE_UNKNOWN flags=0x0 tags= bundle=null
- 11-07 09:47:21:474 播放器 piid:31 状态:started
- 11-07 09:47:48:950 播放器 piid:31 状态:stopped
- 11-07 09:47:49:055 释放播放器 piid:31
- 11-07 09:47:58:426 新的播放器 piid:39 uid/pid:10094/1918 类型:unknown 属性:AudioAttributes: usage=USAGE_MEDIA content=CONTENT_TYPE_UNKNOWN flags=0x0 tags= bundle=null
- 11-07 09:47:58:572 播放器 piid:39 状态:started
- 11-07 09:48:25:933 播放器 piid:39 状态:stopped
- 11-07 09:48:26:039 释放播放器 piid:39
- 11-07 10:01:09:253 新的播放器 piid:23 uid/pid:10094/1918 类型:unknown 属性:AudioAttributes: usage=USAGE_MEDIA content=CONTENT_TYPE_UNKNOWN flags=0x0 tags= bundle=null
- 11-07 10:01:09:260 播放器 piid:23 状态:started
- 11-07 10:01:21:723 播放器 piid:23 状态:stopped
- 11-07 10:01:21:827 释放播放器 piid:23
- 11-07 10:04:06:598 新的播放器 piid:31 uid/pid:10094/1918 类型:unknown 属性:AudioAttributes: usage=USAGE_MEDIA content=CONTENT_TYPE_UNKNOWN flags=0x0 tags= bundle=null
- 11-07 10:04:06:607 播放器 piid:31 状态:started
- 11-07 10:04:22:385 播放器 piid:31 状态:stopped
- 11-07 10:04:22:491 释放播放器 piid:31
9、录音活动记录
RecordActivityMonitor dump time: 上午10:22:45
Audio event log: recording activity received by AudioService
11-07 09:28:25:984 rec update riid:39 uid:10094 session:17 src:VOICE_COMMUNICATION pack:com.ctg.itrdc.clouddesk
11-07 09:28:55:776 rec stop riid:39 uid:10094 session:17 src:VOICE_COMMUNICATION pack:com.ctg.itrdc.clouddesk
11-07 09:30:37:756 rec start riid:55 uid:10094 session:33 src:VOICE_COMMUNICATION pack:com.ctg.itrdc.clouddesk
11-07 09:31:09:295 rec stop riid:55 uid:10094 session:33 src:VOICE_COMMUNICATION pack:com.ctg.itrdc.clouddesk
11-07 09:40:32:902 rec update riid:15 uid:10094 session:9 src:VOICE_COMMUNICATION pack:com.ctg.itrdc.clouddesk
11-07 09:40:51:025 rec stop riid:15 uid:10094 session:9 src:VOICE_COMMUNICATION pack:com.ctg.itrdc.clouddesk
11-07 09:43:10:580 rec update riid:23 uid:10094 session:17 src:VOICE_COMMUNICATION pack:com.ctg.itrdc.clouddesk
11-07 09:43:17:286 rec stop riid:23 uid:10094 session:17 src:VOICE_COMMUNICATION pack:com.ctg.itrdc.clouddesk
11-07 09:46:09:512 rec start riid:15 uid:10094 session:9 src:VOICE_COMMUNICATION pack:com.ctg.itrdc.clouddesk
11-07 09:46:35:728 rec stop riid:15 uid:10094 session:9 src:VOICE_COMMUNICATION pack:com.ctg.itrdc.clouddesk
11-07 10:00:39:767 rec start riid:15 uid:10094 session:9 src:VOICE_COMMUNICATION pack:com.ctg.itrdc.clouddesk
11-07 10:00:51:183 rec stop riid:15 uid:10094 session:9 src:VOICE_COMMUNICATION pack:com.ctg.itrdc.clouddesk
11-07 10:06:44:994 rec update riid:39 uid:10094 session:33 src:VOICE_COMMUNICATION pack:com.ctg.itrdc.clouddesk
11-07 10:07:11:060 rec stop riid:39 uid:10094 session:33 src:VOICE_COMMUNICATION pack:com.ctg.itrdc.clouddesk
录音活动记录:
- 11-07 09:28:25:984 开始录制,riid:39,uid:10094,session:17,来源:VOICE_COMMUNICATION,包名:com.ctg.itrdc.clouddesk
- 11-07 09:28:55:776 停止录制,riid:39,uid:10094,session:17,来源:VOICE_COMMUNICATION,包名:com.ctg.itrdc.clouddesk
- 11-07 09:30:37:756 开始录制,riid:55,uid:10094,session:33,来源:VOICE_COMMUNICATION,包名:com.ctg.itrdc.clouddesk
- 11-07 09:31:09:295 停止录制,riid:55,uid:10094,session:33,来源:VOICE_COMMUNICATION,包名:com.ctg.itrdc.clouddesk
- 11-07 09:40:32:902 更新录制,riid:15,uid:10094,session:9,来源:VOICE_COMMUNICATION,包名:com.ctg.itrdc.clouddesk
- 11-07 09:40:51:025 停止录制,riid:15,uid:10094,session:9,来源:VOICE_COMMUNICATION,包名:com.ctg.itrdc.clouddesk
- 11-07 09:43:10:580 更新录制,riid:23,uid:10094,session:17,来源:VOICE_COMMUNICATION,包名:com.ctg.itrdc.clouddesk
- 11-07 09:43:17:286 停止录制,riid:23,uid:10094,session:17,来源:VOICE_COMMUNICATION,包名:com.ctg.itrdc.clouddesk
- 11-07 09:46:09:512 开始录制,riid:15,uid:10094,session:9,来源:VOICE_COMMUNICATION,包名:com.ctg.itrdc.clouddesk
- 11-07 09:46:35:728 停止录制,riid:15,uid:10094,session:9,来源:VOICE_COMMUNICATION,包名:com.ctg.itrdc.clouddesk
- 11-07 10:00:39:767 开始录制,riid:15,uid:10094,session:9,来源:VOICE_COMMUNICATION,包名:com.ctg.itrdc.clouddesk
- 11-07 10:00:51:183 停止录制,riid:15,uid:10094,session:9,来源:VOICE_COMMUNICATION,包名:com.ctg.itrdc.clouddesk
- 11-07 10:06:44:994 更新录制,riid:39,uid:10094,session:33,来源:VOICE_COMMUNICATION,包名:com.ctg.itrdc.clouddesk
- 11-07 10:07:11:060 停止录制,riid:39,uid:10094,session:33,来源:VOICE_COMMUNICATION,包名:com.ctg.itrdc.clouddesk
10、AudioDeviceBroker 的记录
AudioDeviceBroker(音频设备代理)是Android操作系统中的一个组件,它负责管理和控制设备之间的音频通信。它是音频服务的一部分,旨在确保音频设备(如扬声器、耳机、麦克风等)在不同的音频策略和使用场景中正常运行。
AudioDeviceBroker 通过以下方式发挥作用:
1. 设备连接和断开:当音频设备连接或断开连接时,AudioDeviceBroker将负责检测和通知系统。它可以识别和管理具有不同音频能力(例如扬声器、耳机、蓝牙设备等)的设备,并根据需要自动调整音频路由。
2. 音频策略管理: AudioDeviceBroker 跟踪当前的音频策略,并根据应用程序和系统的需求来确定适合的音频路由和音频输出设备。它可以根据当前正在运行的应用程序类型(如媒体播放器、电话通话、语音识别等)和用户设置来切换音频输入和输出设备。
3. 音频通话管理:AudioDeviceBroker 针对语音通话进行专门管理。它负责处理来自通话相关功能(如蓝牙耳机、扬声器电话、免提通话等)的请求,并确保音频通话的正常进行。
总之,AudioDeviceBroker 在 Android 系统中起着至关重要的作用,以确保音频设备的连通性、音频路由的正确配置以及音频通话的正常管理和切换。这有助于提供良好的音频体验,并为用户和应用程序提供适当的音频功能。
AudioDeviceBroker:Message handler (watch for unhandled messages):Handler (com.android.server.audio.AudioDeviceBroker$BrokerHandler) {aec4cc0} @ 3315811Looper (AudioDeviceBroker, tid 91) {27f5df9}(Total messages: 0, polling=true, quitting=false)Preferred devices for strategy:Connected devices:[DeviceInfo: type:0x80001000 (usb_device) name:USB-Audio - USB 2.0 PC Camera addr:card=20;device=0; codec: 0]APM Connected device (A2DP sink only):mForcedUseForComm: FORCE_NONEmForcedUseForCommExt: FORCE_NONEmModeOwnerPid: 0Speakerphone clients:mBluetoothHeadset: android.bluetooth.BluetoothHeadset@673113emBluetoothHeadsetDevice: nullmScoAudioState: SCO_STATE_INACTIVEmScoAudioMode: SCO_MODE_VIRTUAL_CALLSco clients:mHearingAid: nullmA2dp: android.bluetooth.BluetoothA2dp@2336b9fmAvrcpAbsVolSupported: false
消息处理程序:
- 处理程序:com.android.server.audio.AudioDeviceBroker$BrokerHandler,在3315811位置上的 Handler
- 使用 Looper:AudioDeviceBroker,线程 ID 91,标识符为 27f5df9
- 总共处理的消息数为 0,正在轮询消息,退出状态为 false
优选设备策略:
- 没有提供任何优选设备的信息
已连接设备:
- [DeviceInfo: type:0x80001000 (usb_device) name:USB-Audio - USB 2.0 PC Camera addr:card=20;device=0; codec: 0] - USB-Audio - USB 2.0 PC Camera
APM 连接的设备(仅限 A2DP 沉浸式听觉设备):
- 没有提供任何 APM 连接的设备信息
强制用于通信的设备:
- mForcedUseForComm: FORCE_NONE
- mForcedUseForCommExt: FORCE_NONE
- mModeOwnerPid: 0
扬声器电话客户端:
- 没有提供任何扬声器电话客户端的信息
蓝牙耳机:
- mBluetoothHeadset: android.bluetooth.BluetoothHeadset@673113e
- mBluetoothHeadsetDevice: null
SCO(通话相关)客户端:
- mScoAudioState: SCO_STATE_INACTIVE
- mScoAudioMode: SCO_MODE_VIRTUAL_CALL
SCO(通话相关)客户端:
- 没有提供任何 SCO(通话相关)客户端的信息
助听器设备:
- mHearingAid: null
A2DP(高级音频分发配置文件):
- mA2dp: android.bluetooth.BluetoothA2dp@2336b9f
是否支持 Avrcp 绝对音量控制:
- mAvrcpAbsVolSupported: false
11、音效(SoundEffects)信息
SoundEffects(音效)在软件和硬件系统中有多种作用,主要包括以下几个方面:
1. 用户反馈:音效能够为用户提供可听的反馈,增强用户体验。例如,在触摸屏上按下按钮时,通过播放点击音效来模拟实际按钮的感觉,让用户知道他们已成功执行了操作。
2. 事件提示:音效可用于指示某些事件的发生。例如,在收到新消息或邮件时,播放提示音效可以提醒用户注意。
3. 界面导航:音效可以用作用户界面的导航工具。例如,通过播放不同的音效来区分选项卡之间的切换,帮助用户更好地理解界面结构。
4. 系统警告:音效可以用于向用户发送警告或关键信息。例如,在低电量或错误状态下播放警告音效,以吸引用户的注意并要求采取相应的操作。
5. 游戏娱乐:音效在游戏中扮演着重要的角色,用于增强游戏体验。例如,在游戏过程中播放特殊动作、攻击或背景音效,以提供更加沉浸式的游戏体验。
总体而言,音效能够为用户提供多样的听觉体验,并在软件和硬件系统中扮演着重要的角色。它们不仅可以提供反馈和提示,还能够增强用户界面、传达警示和娱乐性,从而提升用户的参与感和满意度。
SoundEffects:Message handler (watch for unhandled messages):Handler (com.android.server.audio.SoundEffectsHelper$SfxHandler) {6a974ec} @ 3315813Looper (AS.SfxWorker, tid 89) {24ee0b5}(Total messages: 0, polling=true, quitting=false)Default attenuation (dB): -6
Audio event log: Sound Effects Loading
11-07 09:27:42:763 effects loading started
11-07 09:27:43:981 effect KeypressStandard.ogg loaded
11-07 09:27:43:985 effect Effect_Tick.ogg loaded
11-07 09:27:44:114 effect KeypressSpacebar.ogg loaded
11-07 09:27:44:131 effect KeypressDelete.ogg loaded
11-07 09:27:44:356 effect KeypressReturn.ogg loaded
11-07 09:27:44:373 effect KeypressInvalid.ogg loaded
11-07 09:27:44:373 effects loading completed
- 消息处理程序:
- 处理程序:com.android.server.audio.SoundEffectsHelper$SfxHandler,在3315813位置上的 Handler
- 使用 Looper:AS.SfxWorker,线程 ID 89,标识符为 24ee0b5
- 总共处理的消息数为 0,正在轮询消息,退出状态为 false
- 默认衰减(Default attenuation):-6 dB
- 音频事件日志(Audio event log):
- 事件:Sound Effects Loading
- 时间戳:11-07 09:27:42:763
- 音效加载开始
- 事件:effect KeypressStandard.ogg loaded
- 时间戳:11-07 09:27:43:981
- 音效 KeypressStandard.ogg 加载完成
- 事件:effect Effect_Tick.ogg loaded
- 时间戳:11-07 09:27:43:985
- 音效 Effect_Tick.ogg 加载完成
- 事件:effect KeypressSpacebar.ogg loaded
- 时间戳:11-07 09:27:44:114
- 音效 KeypressSpacebar.ogg 加载完成
- 事件:effect KeypressDelete.ogg loaded
- 时间戳:11-07 09:27:44:131
- 音效 KeypressDelete.ogg 加载完成
- 事件:effect KeypressReturn.ogg loaded
- 时间戳:11-07 09:27:44:356
- 音效 KeypressReturn.ogg 加载完成
- 事件:effect KeypressInvalid.ogg loaded
- 时间戳:11-07 09:27:44:373
- 音效 KeypressInvalid.ogg 加载完成
- 事件:effects loading completed
- 时间戳:11-07 09:27:44:373
- 音效加载完成
以上是关于音效加载的记录。它显示了音效加载的开始和完成时间,以及每个音效文件的加载情况。
12、音频事件日志 - 通话状态
Event logs:
Audio event log: phone state (logged after successful call to AudioSystem.setPhoneState(int, int))
11-07 09:40:51:498 setMode(MODE_NORMAL) from package=MSG_CHECK_MODE_FOR_UID pid=1918 selected mode=MODE_NORMAL by pid=0
11-07 09:40:51:548 mode IN COMMUNICATION timeout for package=com.ctg.itrdc.clouddesk pid=1918
11-07 09:40:52:133 setMode(MODE_NORMAL) from package=com.ctg.itrdc.clouddesk pid=1918 selected mode=MODE_NORMAL by pid=0
11-07 09:43:10:368 setMode(MODE_IN_COMMUNICATION) from package=com.ctg.itrdc.clouddesk pid=1918 selected mode=MODE_IN_COMMUNICATION by pid=1918
11-07 09:43:11:338 setMode(MODE_IN_COMMUNICATION) from package=com.ctg.itrdc.clouddesk pid=1918 selected mode=MODE_IN_COMMUNICATION by pid=1918
11-07 09:43:17:486 setMode(MODE_NORMAL) from package=MSG_CHECK_MODE_FOR_UID pid=1918 selected mode=MODE_NORMAL by pid=0
11-07 09:43:17:557 mode IN COMMUNICATION timeout for package=com.ctg.itrdc.clouddesk pid=1918
11-07 09:43:18:396 setMode(MODE_NORMAL) from package=com.ctg.itrdc.clouddesk pid=1918 selected mode=MODE_NORMAL by pid=0
11-07 09:45:53:661 onAudioServerDied causes setPhoneState(MODE_NORMAL, uid=0)
11-07 09:46:09:387 setMode(MODE_IN_COMMUNICATION) from package=com.ctg.itrdc.clouddesk pid=1918 selected mode=MODE_IN_COMMUNICATION by pid=1918
11-07 09:46:10:175 setMode(MODE_IN_COMMUNICATION) from package=com.ctg.itrdc.clouddesk pid=1918 selected mode=MODE_IN_COMMUNICATION by pid=1918
11-07 09:46:36:918 setMode(MODE_NORMAL) from package=com.ctg.itrdc.clouddesk pid=1918 selected mode=MODE_NORMAL by pid=0
11-07 09:59:37:027 onAudioServerDied causes setPhoneState(MODE_NORMAL, uid=0)
11-07 10:00:39:573 setMode(MODE_IN_COMMUNICATION) from package=com.ctg.itrdc.clouddesk pid=1918 selected mode=MODE_IN_COMMUNICATION by pid=1918
11-07 10:00:51:682 setMode(MODE_NORMAL) from package=MSG_CHECK_MODE_FOR_UID pid=1918 selected mode=MODE_NORMAL by pid=0
11-07 10:00:51:705 mode IN COMMUNICATION timeout for package=com.ctg.itrdc.clouddesk pid=1918
根据提供的事件日志,以下是对每个事件的解释:
1. 11-07 09:40:51:498 - 从包名为 "MSG_CHECK_MODE_FOR_UID" 的进程调用了 `AudioSystem.setPhoneState` 方法来设置手机的状态为 `MODE_NORMAL`。
2. 11-07 09:40:51:548 - 来自包名为 "com.ctg.itrdc.clouddesk" 的进程发出了 "mode IN COMMUNICATION" 超时警告。
3. 11-07 09:40:52:133 - 从包名为 "com.ctg.itrdc.clouddesk" 的进程调用了 `AudioSystem.setPhoneState` 方法来设置手机的状态为 `MODE_NORMAL`。
4. 11-07 09:43:10:368 - 从包名为 "com.ctg.itrdc.clouddesk" 的进程调用了 `AudioSystem.setMode` 方法来设置音频模式为 `MODE_IN_COMMUNICATION`。
5. 11-07 09:43:11:338 - 从包名为 "com.ctg.itrdc.clouddesk" 的进程调用了 `AudioSystem.setMode` 方法来设置音频模式为 `MODE_IN_COMMUNICATION`。
6. 11-07 09:43:17:486 - 从包名为 "MSG_CHECK_MODE_FOR_UID" 的进程调用了 `AudioSystem.setPhoneState` 方法来设置手机的状态为 `MODE_NORMAL`。
7. 11-07 09:43:17:557 - 来自包名为 "com.ctg.itrdc.clouddesk" 的进程发出了 "mode IN COMMUNICATION" 超时警告。
8. 11-07 09:43:18:396 - 从包名为 "com.ctg.itrdc.clouddesk" 的进程调用了 `AudioSystem.setPhoneState` 方法来设置手机的状态为 `MODE_NORMAL`。
9. 11-07 09:45:53:661 - "onAudioServerDied" 导致调用了 `AudioSystem.setPhoneState` 方法来设置手机的状态为 `MODE_NORMAL`。
10. 11-07 09:46:09:387 - 从包名为 "com.ctg.itrdc.clouddesk" 的进程调用了 `AudioSystem.setMode` 方法来设置音频模式为 `MODE_IN_COMMUNICATION`。
11. 11-07 09:46:10:175 - 从包名为 "com.ctg.itrdc.clouddesk" 的进程调用了 `AudioSystem.setMode` 方法来设置音频模式为 `MODE_IN_COMMUNICATION`。
12. 11-07 09:46:36:918 - 从包名为 "com.ctg.itrdc.clouddesk" 的进程调用了 `AudioSystem.setPhoneState` 方法来设置手机的状态为 `MODE_NORMAL`。
13. 11-07 09:59:37:027 - "onAudioServerDied" 导致调用了 `AudioSystem.setPhoneState` 方法来设置手机的状态为 `MODE_NORMAL`。
14. 11-07 10:00:39:573 - 从包名为 "com.ctg.itrdc.clouddesk" 的进程调用了 `AudioSystem.setMode` 方法来设置音频模式为 `MODE_IN_COMMUNICATION`。
15. 11-07 10:00:51:682 - 从包名为 "MSG_CHECK_MODE_FOR_UID" 的进程调用了 `AudioSystem.setPhoneState` 方法来设置手机的状态为 `MODE_NORMAL`。
16. 11-07 10:00:51:705 - 来自包名为 "com.ctg.itrdc.clouddesk" 的进程发出了 "mode IN COMMUNICATION" 超时警告。
17. 11-07 10:00:52:295 - 从包名为 "com.ctg.itrdc.clouddesk" 的进程调用了 `AudioSystem.setPhoneState` 方法来设置手机的状态为 `MODE_NORMAL`。
18. 11-07 10:06:44:675 - 从包名为 "com.ctg.itrdc.clouddesk" 的进程调用了 `AudioSystem.setMode` 方法来设置音频模式为 `MODE_IN_COMMUNICATION`。
13、音频事件日志 - 蓝牙
Audio event log: wired/A2DP/hearing aid device connection
11-07 09:40:52:184 stopBluetoothSco()) from u/pid:10094/1918
11-07 09:43:10:491 startBluetoothSco()) from u/pid:10094/1918
11-07 09:43:18:442 stopBluetoothSco()) from u/pid:10094/1918
11-07 09:46:09:446 startBluetoothSco()) from u/pid:10094/1918
11-07 09:46:36:985 stopBluetoothSco()) from u/pid:10094/1918
11-07 09:47:46:379 APM failed to make unavailable A2DP device addr=64:68:76:2F:50:6A error=1
11-07 09:47:46:383 msg: setBluetoothA2dpDeviceConnectionStateSuppressNoisyIntent state=0 addr=64:68:76:2F:50:6A prof=2 supprNoisy=false vol=-1
11-07 09:47:46:399 A2DP sink connected: device addr=64:68:76:2F:50:6A state=0 codec=AUDIO_FORMAT_DEFAULT vol=-1
11-07 09:47:55:166 BT profile service: connecting A2DP profile
11-07 09:47:55:261 BT profile service: connecting HEADSET profile
11-07 09:47:57:271 msg: setBluetoothA2dpDeviceConnectionStateSuppressNoisyIntent state=2 addr=64:68:76:2F:50:6A prof=2 supprNoisy=true vol=15
11-07 09:47:57:274 A2DP sink connected: device addr=64:68:76:2F:50:6A state=2 codec=AUDIO_FORMAT_SBC vol=15
11-07 09:47:57:503 A2DP device addr=64:68:76:2F:50:6A now available
11-07 09:47:57:513 onBluetoothA2dpActiveDeviceChange addr=64:68:76:2F:50:6A event=DEVICE_CONFIG_CHANGE
11-07 09:47:57:744 APM handleDeviceConfigChange success for A2DP device addr=64:68:76:2F:50:6A codec=AUDIO_FORMAT_SBC
11-07 09:48:59:027 msg: setBluetoothA2dpDeviceConnectionStateSuppressNoisyIntent state=0 addr=64:68:76:2F:50:6A prof=2 supprNoisy=false vol=-1
11-07 09:48:59:032 broadcast ACTION_AUDIO_BECOMING_NOISY
11-07 09:49:00:033 A2DP sink connected: device addr=64:68:76:2F:50:6A state=0 codec=AUDIO_FORMAT_SBC vol=-1
11-07 09:49:00:076 A2DP device addr=64:68:76:2F:50:6A made unavailable
11-07 10:06:22:033 msg: setBluetoothA2dpDeviceConnectionStateSuppressNoisyIntent state=2 addr=64:68:76:2F:50:6A prof=2 supprNoisy=true vol=15
11-07 10:06:22:037 onBluetoothA2dpActiveDeviceChange addr=64:68:76:2F:50:6A event=DEVICE_CONFIG_CHANGE
11-07 10:06:22:037 A2dp config change ignored (scheduled connection change)
11-07 10:06:22:037 A2DP sink connected: device addr=64:68:76:2F:50:6A state=2 codec=AUDIO_FORMAT_SBC vol=15
11-07 10:06:22:184 A2DP device addr=64:68:76:2F:50:6A now available
11-07 10:06:44:727 startBluetoothSco()) from u/pid:10094/1918
11-07 10:07:12:348 stopBluetoothSco()) from u/pid:10094/1918
11-07 10:09:59:478 msg: setBluetoothA2dpDeviceConnectionStateSuppressNoisyIntent state=0 addr=64:68:76:2F:50:6A prof=2 supprNoisy=false vol=-1
11-07 10:09:59:505 broadcast ACTION_AUDIO_BECOMING_NOISY
11-07 10:10:00:505 A2DP sink connected: device addr=64:68:76:2F:50:6A state=0 codec=AUDIO_FORMAT_SBC vol=-1
11-07 10:10:00:544 A2DP device addr=64:68:76:2F:50:6A made unavailable
根据提供的音频事件日志,可以看出以下设备连接和断开的时间顺序:
- 09:40:52:184:关闭蓝牙耳机设备SCO模式
- 09:43:10:491:启动蓝牙耳机设备SCO模式
- 09:43:18:442:关闭蓝牙耳机设备SCO模式
- 09:46:09:446:启动蓝牙耳机设备SCO模式
- 09:46:36:985:关闭蓝牙耳机设备SCO模式
- 09:47:46:379:无法连接A2DP设备,地址为64:68:76:2F:50:6A,出错代码为1
- 09:47:46:383:设置蓝牙A2DP设备连接状态,状态为0,地址为64:68:76:2F:50:6A,配置文件为2,关闭噪声抑制,音量为-1
- 09:47:46:399:A2DP设备连接建立,地址为64:68:76:2F:50:6A,状态为0,音频编码格式为默认,音量为-1
- 09:47:55:166:蓝牙配置文件服务:连接A2DP配置文件
- 09:47:55:261:蓝牙配置文件服务:连接HEADSET配置文件
- 09:47:57:271:设置蓝牙A2DP设备连接状态,状态为2,地址为64:68:76:2F:50:6A,配置文件为2,启用噪声抑制,音量为15
- 09:47:57:274:A2DP设备连接建立,地址为64:68:76:2F:50:6A,状态为2,音频编码格式为SBC,音量为15
- 09:47:57:503:A2DP设备地址为64:68:76:2F:50:6A的设备现在可用
- 09:47:57:513:蓝牙A2DP设备活动设备更改,地址为64:68:76:2F:50:6A,事件为DEVICE_CONFIG_CHANGE
- 09:47:57:744:APM成功处理A2DP设备地址为64:68:76:2F:50:6A的设备配置更改,音频编码格式为SBC
- 09:48:59:027:设置蓝牙A2DP设备连接状态,状态为0,地址为64:68:76:2F:50:6A,配置文件为2,关闭噪声抑制,音量为-1
- 09:48:59:032:广播ACTION_AUDIO_BECOMING_NOISY
- 09:49:00:033:A2DP设备连接建立,地址为64:68:76:2F:50:6A,状态为0,音频编码格式为SBC,音量为-1
- 09:49:00:076:A2DP设备地址为64:68:76:2F:50:6A的设备不可用
- 10:06:22:033:设置蓝牙A2DP设备连接状态,状态为2,地址为64:68:76:2F:50:6A,配置文件为2,启用噪声抑制,音量为15
- 10:06:22:037:蓝牙A2DP活动设备更改,地址为64:68:76:2F:50:6A,事件为DEVICE_CONFIG_CHANGE
- 10:06:22:037:忽略A2dp配置更改(预定的连接更改)
- 10:06:22:037:A2DP设备连接建立,地址为64:68:76:2F:50:6A,状态为2,音频编码格式为SBC,音量为15
- 10:06:22:184:A2DP设备地址为64:68:76:2F:50:6A的设备现在可用
- 10:06:22:184:蓝牙A2DP设备活动设备更改,地址为64:68:76:2F:50:6A,事件为DEVICE_CONFIG_CHANGE
- 10:06:22:192:APM成功处理A2DP设备地址为64:68:76:2F:50:6A的设备配置更改,音频编码格式为SBC
- 10:07:38:200:设置蓝牙A2DP设备连接状态,状态为0,地址为64:68:76:2F:50:6A,配置文件为2,关闭噪声抑制,音量为-1
- 10:07:38:211:关闭蓝牙设备,地址为64:68:76:2F:50:6A
- 10:07:38:350:打开蓝牙设备,地址为64:68:76:2F:50:6A
- 10:08:54:466:蓝牙配置文件服务:连接A2DP配置文件
- 10:08:54:566:蓝牙配置文件服务:连接HEADSET配置文件
- 10:08:56:647:设置蓝牙A2DP设备连接状态,状态为2,地址为64:68:76:2F:50:6A,配置文件为2,启用噪声抑制,音量为15
- 10:08:56:648:A2DP设备连接建立,地址为64:68:76:2F:50:6A,状态为2,音频编码格式为SBC,音量为15
- 10:08:57:555:忽略A2dp配置更改(预定的连接更改)
- 11:12:19:827:设置蓝牙A2DP设备连接状态,状态为0,地址为64:68:76:2F:50:6A,配置文件为2,关闭噪声抑制,音量为-1
- 11:12:19:838:A2DP设备连接建立,地址为64:68:76:2F:50:6A,状态为0,音频编码格式为SBC,音量为-1
- 11:13:00:905:A2DP设备地址为64:68:76:2F:50:6A的设备不可用
- 11:54:35:888:广播ACTION_AUDIO_BECOMING_NOISY
- 11:55:48:583:设置蓝牙A2DP设备连接状态,状态为0,地址为64:68:76:2F:50:6A,配置文件为2,关闭噪声抑制,音量为-1
- 11:55:48:591:A2DP设备连接建立,地址为64:68:76:2F:50:6A,状态为0,音频编码格式为SBC,音量为-1
- 11:56:39:635:蓝牙A2DP设备活动设备更改,地址为64:68:76:2F:50:6A,事件为DEVICE_CONFIG_CHANGE
14、音频事件日志 - 用户指定设备记录
Audio event log: force use (logged before setForceUse() is executed)
11-07 10:00:39:604 setForceUse(FOR_VIBRATE_RINGING, FORCE_NONE) due to muteRingerModeStreams() from u/pid:10094/1918
11-07 10:00:39:605 setForceUse(FOR_COMMUNICATION, FORCE_NONE) due to setNewModeOwner
11-07 10:00:51:716 setForceUse(FOR_VIBRATE_RINGING, FORCE_NONE) due to muteRingerModeStreams() from u/pid:1000/519
11-07 10:00:52:325 setForceUse(FOR_VIBRATE_RINGING, FORCE_NONE) due to muteRingerModeStreams() from u/pid:10094/1918
11-07 10:00:52:326 setForceUse(FOR_COMMUNICATION, FORCE_NONE) due to setNewModeOwner
11-07 10:06:22:041 setForceUse(FOR_MEDIA, FORCE_NONE) due to setBluetoothA2dpOn(true) from u/pid:1000/519 src:onSetA2dpSinkConnectionState
11-07 10:06:44:722 setForceUse(FOR_VIBRATE_RINGING, FORCE_NONE) due to muteRingerModeStreams() from u/pid:10094/1918
11-07 10:06:44:725 setForceUse(FOR_COMMUNICATION, FORCE_NONE) due to setNewModeOwner
11-07 10:06:45:006 setForceUse(FOR_COMMUNICATION, FORCE_BT_SCO) due to BtHelper.receiveBtEvent
11-07 10:06:45:007 setForceUse(FOR_VIBRATE_RINGING, FORCE_NONE) due to muteRingerModeStreams() from u/pid:1000/519
11-07 10:06:45:261 setForceUse(FOR_RECORD, FORCE_BT_SCO) due to BtHelper.receiveBtEvent
11-07 10:06:45:490 setForceUse(FOR_VIBRATE_RINGING, FORCE_NONE) due to muteRingerModeStreams() from u/pid:10094/1918
11-07 10:07:12:345 setForceUse(FOR_VIBRATE_RINGING, FORCE_NONE) due to muteRingerModeStreams() from u/pid:10094/1918
11-07 10:07:12:346 setForceUse(FOR_COMMUNICATION, FORCE_BT_SCO) due to setNewModeOwner
11-07 10:07:12:541 setForceUse(FOR_COMMUNICATION, FORCE_NONE) due to BtHelper.receiveBtEvent
11-07 10:07:12:541 setForceUse(FOR_VIBRATE_RINGING, FORCE_NONE) due to muteRingerModeStreams() from u/pid:1000/519
11-07 10:07:12:579 setForceUse(FOR_RECORD, FORCE_NONE) due to BtHelper.receiveBtEvent
11-07 10:09:59:467 setForceUse(FOR_VIBRATE_RINGING, FORCE_NONE) due to muteRingerModeStreams() from u/pid:1000/519
11-07 10:09:59:477 setForceUse(FOR_COMMUNICATION, FORCE_NONE) due to resetBluetoothSco
11-07 10:09:59:477 setForceUse(FOR_RECORD, FORCE_NONE) due to resetBluetoothSco
根据提供的音频事件日志,以下是发生的事件:
- 10:00:39:604:由于`muteRingerModeStreams()`从用户/进程ID为10094/1918,被调用了`setForceUse(FOR_VIBRATE_RINGING, FORCE_NONE)`。
- 10:00:39:605:由于`setNewModeOwner`的调用,导致了`setForceUse(FOR_COMMUNICATION, FORCE_NONE)`。
- 10:00:51:716:由于`muteRingerModeStreams()`从用户/进程ID为1000/519,被调用了`setForceUse(FOR_VIBRATE_RINGING, FORCE_NONE)`。
- 10:00:52:325:由于`muteRingerModeStreams()`从用户/进程ID为10094/1918,被调用了`setForceUse(FOR_VIBRATE_RINGING, FORCE_NONE)`。
- 10:00:52:326:由于`setNewModeOwner`的调用,导致了`setForceUse(FOR_COMMUNICATION, FORCE_NONE)`。
- 10:06:22:041:由于从用户/进程ID为1000/519的`onSetA2dpSinkConnectionState`中调用了`setBluetoothA2dpOn(true)`,导致了`setForceUse(FOR_MEDIA, FORCE_NONE)`。
- 10:06:44:722:由于`muteRingerModeStreams()`从用户/进程ID为10094/1918,被调用了`setForceUse(FOR_VIBRATE_RINGING, FORCE_NONE)`。
- 10:06:44:725:由于`setNewModeOwner`的调用,导致了`setForceUse(FOR_COMMUNICATION, FORCE_NONE)`。
- 10:06:45:006:由于`BtHelper.receiveBtEvent`的调用,导致了`setForceUse(FOR_COMMUNICATION, FORCE_BT_SCO)`。
- 10:06:45:007:由于`muteRingerModeStreams()`从用户/进程ID为1000/519,被调用了`setForceUse(FOR_VIBRATE_RINGING, FORCE_NONE)`。
- 10:06:45:261:由于`BtHelper.receiveBtEvent`的调用,导致了`setForceUse(FOR_RECORD, FORCE_BT_SCO)`。
- 10:06:45:490:由于`muteRingerModeStreams()`从用户/进程ID为10094/1918,被调用了`setForceUse(FOR_VIBRATE_RINGING, FORCE_NONE)`。
- 10:07:12:345:由于`muteRingerModeStreams()`从用户/进程ID为10094/1918,被调用了`setForceUse(FOR_VIBRATE_RINGING, FORCE_NONE)`。
- 10:07:12:346:由于`setNewModeOwner`的调用,导致了`setForceUse(FOR_COMMUNICATION, FORCE_BT_SCO)`。
- 10:07:12:541:由于`BtHelper.receiveBtEvent`的调用,导致了`setForceUse(FOR_COMMUNICATION, FORCE_NONE)`。
- 10:07:12:541:由于`muteRingerModeStreams()`从用户/进程ID为1000/519,被调用了`setForceUse(FOR_VIBRATE_RINGING, FORCE_NONE)`。
- 10:07:12:579:由于`BtHelper.receiveBtEvent`的调用,导致了`setForceUse(FOR_RECORD, FORCE_NONE)`。
- 10:09:59:467:由于`muteRingerModeStreams()`从用户/进程ID为1000/519,被调用了`setForceUse(FOR_VIBRATE_RINGING, FORCE_NONE)`。
- 10:09:59:477:由于`resetBluetoothSco`的调用,导致了`setForceUse(FOR_COMMUNICATION, FORCE_NONE)`。
- 10:09:59:477:由于`resetBluetoothSco`的调用,导致了`setForceUse(FOR_RECORD, FORCE_NONE)`。
以上是根据提供的音频事件日志解释的事件。每个事件似乎都是根据特定条件来设置音频强制使用模式。具体的应用和用途可能因系统配置而异。
15、音频事件日志 - 音量变量记录
Audio event log: volume changes (logged when command received by AudioService)
11-07 09:27:48:700 adjustStreamVolume(stream:STREAM_ACCESSIBILITY dir:ADJUST_UNMUTE flags:0x0) from com.zte.usmartsettings
11-07 09:28:03:404 setStreamVolume(stream:STREAM_BLUETOOTH_SCO index:15 flags:0x0) from com.android.bluetooth
11-07 09:28:03:523 VolumeStreamState.muteInternally(stream:STREAM_MUSIC, muted)
11-07 09:28:03:535 onSetA2dpSinkConnectionState dev:0x80 volIdx:150
11-07 09:28:03:935 VolumeStreamState.muteInternally(stream:STREAM_MUSIC, unmuted)
11-07 09:28:04:715 avrcpSupportsAbsoluteVolume addr=64:68:76:2F:50:6A support=true
11-07 09:28:36:045 adjustStreamVolume(stream:STREAM_VOICE_CALL dir:ADJUST_UNMUTE flags:0x0) from android
11-07 09:28:36:047 adjustStreamVolume(stream:STREAM_SYSTEM dir:ADJUST_UNMUTE flags:0x0) from android
11-07 09:28:36:051 adjustStreamVolume(stream:STREAM_RING dir:ADJUST_UNMUTE flags:0x0) from android
11-07 09:28:36:055 adjustStreamVolume(stream:STREAM_MUSIC dir:ADJUST_UNMUTE flags:0x0) from android
11-07 09:28:36:058 adjustStreamVolume(stream:STREAM_ALARM dir:ADJUST_UNMUTE flags:0x0) from android
11-07 09:28:36:058 adjustStreamVolume(stream:STREAM_NOTIFICATION dir:ADJUST_UNMUTE flags:0x0) from android
11-07 09:28:36:061 adjustStreamVolume(stream:STREAM_DTMF dir:ADJUST_UNMUTE flags:0x0) from android
11-07 09:28:36:062 adjustStreamVolume(stream:STREAM_ACCESSIBILITY dir:ADJUST_UNMUTE flags:0x0) from android
11-07 09:28:36:062 adjustStreamVolume(stream:STREAM_BLUETOOTH_SCO dir:ADJUST_UNMUTE flags:0x0) from android
11-07 09:39:43:039 avrcpSupportsAbsoluteVolume addr=64:68:76:2F:50:6A support=true
11-07 09:47:46:377 VolumeStreamState.muteInternally(stream:STREAM_MUSIC, muted)
11-07 09:47:46:522 VolumeStreamState.muteInternally(stream:STREAM_MUSIC, unmuted)
11-07 09:47:48:467 setStreamVolume(stream:STREAM_MUSIC index:14 flags:0x0) from com.zte.usmartsettings
11-07 09:47:48:511 setStreamVolume(stream:STREAM_BLUETOOTH_SCO index:14 flags:0x0) from com.zte.usmartsettings
11-07 09:47:48:520 adjustStreamVolume(stream:STREAM_BLUETOOTH_SCO dir:ADJUST_UNMUTE flags:0x0) from com.zte.usmartsettings
11-07 09:47:48:525 setStreamVolume(stream:STREAM_VOICE_CALL index:14 flags:0x0) from com.zte.usmartsettings
11-07 09:47:52:121 setStreamVolume(stream:STREAM_MUSIC index:15 flags:0x0) from com.zte.usmartsettings
11-07 09:47:52:160 setStreamVolume(stream:STREAM_BLUETOOTH_SCO index:15 flags:0x0) from com.zte.usmartsettings
11-07 09:47:52:183 adjustStreamVolume(stream:STREAM_BLUETOOTH_SCO dir:ADJUST_UNMUTE flags:0x0) from com.zte.usmartsettings
11-07 09:47:52:191 setStreamVolume(stream:STREAM_VOICE_CALL index:15 flags:0x0) from com.zte.usmartsettings
11-07 09:47:57:114 setStreamVolume(stream:STREAM_BLUETOOTH_SCO index:15 flags:0x0) from com.android.bluetooth
11-07 09:47:57:267 VolumeStreamState.muteInternally(stream:STREAM_MUSIC, muted)
11-07 09:47:57:276 onSetA2dpSinkConnectionState dev:0x80 volIdx:150
11-07 09:47:57:852 VolumeStreamState.muteInternally(stream:STREAM_MUSIC, unmuted)
11-07 09:47:58:550 avrcpSupportsAbsoluteVolume addr=64:68:76:2F:50:6A support=true
11-07 09:48:59:023 VolumeStreamState.muteInternally(stream:STREAM_MUSIC, muted)
11-07 09:49:00:183 VolumeStreamState.muteInternally(stream:STREAM_MUSIC, unmuted)
11-07 10:06:21:718 setStreamVolume(stream:STREAM_BLUETOOTH_SCO index:15 flags:0x0) from com.android.bluetooth
11-07 10:06:22:033 VolumeStreamState.muteInternally(stream:STREAM_MUSIC, muted)
11-07 10:06:22:039 onSetA2dpSinkConnectionState dev:0x80 volIdx:150
11-07 10:06:22:193 avrcpSupportsAbsoluteVolume addr=64:68:76:2F:50:6A support=true
11-07 10:06:22:294 VolumeStreamState.muteInternally(stream:STREAM_MUSIC, unmuted)
11-07 10:09:59:476 VolumeStreamState.muteInternally(stream:STREAM_MUSIC, muted)
11-07 10:10:00:652 VolumeStreamState.muteInternally(stream:STREAM_MUSIC, unmuted)
这个日志记录了音量变更的事件。以下是一些关键行为的总结:
- 时间 09:27:48:700:调整辅助功能音频流的音量。
- 时间 09:28:03:404:将蓝牙通话音频流的音量设置为15。
- 时间 09:28:03:523:将音乐音频流静音。
- 时间 09:28:03:935:取消音乐音频流的静音状态。
- 时间 09:28:04:715:检测到A2DP音频设备支持绝对音量。
- 时间 09:28:36:045:取消语音呼叫音频流的静音状态。
- 时间 09:28:36:047:取消系统音频流的静音状态。
- 时间 09:28:36:051:取消铃声音频流的静音状态。
- 时间 09:28:36:055:取消音乐音频流的静音状态。
- 时间 09:28:36:058:取消闹钟音频流的静音状态。
- 时间 09:28:36:058:取消通知音频流的静音状态。
- 时间 09:28:36:061:取消DTMF音频流的静音状态。
- 时间 09:28:36:062:取消辅助功能音频流的静音状态。
- 时间 09:28:36:062:取消蓝牙通话音频流的静音状态。
- 时间 09:39:43:039:检测到A2DP音频设备支持绝对音量。
- 时间 09:47:46:377:将音乐音频流静音。
- 时间 09:47:46:522:取消音乐音频流的静音状态。
- 时间 09:47:48:467:将音乐音频流的音量设置为14。
- 时间 09:47:48:511:将蓝牙通话音频流的音量设置为14。
- 时间 09:47:48:520:取消蓝牙通话音频流的静音状态。
- 时间 09:47:48:525:将语音呼叫音频流的音量设置为14。
相关文章:
安卓音频之dumpsys audio
目录 概述 详述 dumpsys audio 1、音频服务生命周期的事件日志 2、音频焦点事件日志 3、音频流音量信息 4、音量组和设备的相关信息 5、铃声模式 6、音频路由 7、其他状态信息 8、播放活动监控信息 9、录音活动记录 10、AudioDeviceBroker 的记录 11、音效&#…...

玩客云v1.0 刷机时无法识别USB
v1.0刷机时公对公插头掉了,刷机失败,再次刷机,一直提示无法识别的USB设备,此时LED一直不亮,就像是刷成砖了一样,查了好多文章最后发现正面还有一个地方需要短接。 背面的短接点 【免费】玩客云刷机包s805-…...

影刀进阶指令 | Kimi (对标ChatGPT)
文章目录 影刀进阶指令 | Kimi (对标ChatGPT)一. 需求二. 流程三. 实现3.1 流程概览3.2 流程步骤讲解1\. 确定问题2\. 填写问题并发送3\. 检测答案是否出完 四. 运维 影刀进阶指令 | Kimi (对标ChatGPT) 简单讲讲RPA调用kimi实现…...
前端项目 node_modules依赖报错解决记录
1.首先尝试解决思路 npm报错就切换yarn , yarn报错就先切换npm删除 node_modules 跟 package-lock.json文件重新下载依 2. 报错信息: Module build failed: Error: Missing binding D:\vue-element-admin\node_modules\node-sass\vendor\win32-x64-8…...
数据科学团队管理
定位: 有核心竞争力的工业算法部门与PM、RD等深度合作 业务方向:(不同产品线) 工业预测性维护与数据挖掘视觉检测、OCR 工作内容 项目需求与交付内部框架(frameworks \packages)应用demo专利、竞赛、论文 日常管理 项目管理数据管理(原…...

一个简单的机器学习实战例程,使用Scikit-Learn库来完成一个常见的分类任务——**鸢尾花数据集(Iris Dataset)**的分类
机器学习实战通常是将理论与实践结合,通过实际的项目或案例,帮助你理解并应用各种机器学习算法。下面是一个简单的机器学习实战例程,使用Scikit-Learn库来完成一个常见的分类任务——**鸢尾花数据集(Iris Dataset)**的…...

攻防世界web第二题unseping
这是题目 <?php highlight_file(__FILE__);class ease{private $method;private $args;function __construct($method, $args) {$this->method $method;$this->args $args;}function __destruct(){if (in_array($this->method, array("ping"))) {cal…...
动手学深度学习-深度学习计算-3延后初始化
目录 实例化网络 小结 到目前为止,我们忽略了建立网络时需要做的以下这些事情: 我们定义了网络架构,但没有指定输入维度。 我们添加层时没有指定前一层的输出维度。 我们在初始化参数时,甚至没有足够的信息来确定模型应该包含…...

Linux | 零基础Ubuntu搭建JDK
目录 软件简介 在线文档 压缩包安装 下载地址 补:传输软件 传输等待 目录结构 解压安装 配置环境 更新环境 测试JDK结果 APT安装 软件简介 Java Development Kit (JDK) 是 Sun 公司(已被 Oracle 收购)针对 Java 开发员的软件开发工具包。自…...
Android `android.graphics` 包深度解析:架构与设计模式
Android android.graphics 包深度解析:架构与设计模式 目录 引言android.graphics 包概述核心类与架构 CanvasPaintBitmapColorPathShaderMatrix设计模式在 android.graphics 中的应用 工厂模式装饰者模式策略模式享元模式高级图形处理技术 硬件加速离屏渲染自定义 View 中的…...

WPF使用OpenCvSharp4
WPF使用OpenCvSharp4 创建项目安装OpenCvSharp4 创建项目 安装OpenCvSharp4 在解决方案资源管理器中,右键单击项目名称,选择“管理 NuGet 包”。搜索并安装以下包: OpenCvSharp4OpenCvSharp4.ExtensionsOpenCvSharp4.runtime.winSystem.Man…...
你不需要对其他成年人的情绪负责
在这个纷繁复杂的世界里,每个人都是独一无二的个体,背负着各自的故事、梦想与烦恼。在人际交往的广阔舞台上,我们时常会遇到这样的情境:朋友、同事、家人,甚至是陌生人,他们的情绪似乎总能不经意间影响到我…...
25秋招面试总结
秋招从八月底开始,陆陆续续面试了不少,现在也是已经尘埃落定,在这里做一些总结一些我个人的面试经历 腾讯 腾讯是我最早面试的一家,一开始捞我面试的是数字人民币,安全方向的岗位,属于腾讯金融科技这块。…...
高斯核函数(深入浅出)
目录 定义及数学形式主要特点应用示例小结 高斯核函数(Gaussian Kernel),又称径向基核(Radial Basis Function Kernel,RBF Kernel),是机器学习与模式识别中最常用的核函数之一。它通过在高维空间…...

支付宝百宝箱 工具,快速上手制作一个agent
作品:历史上的今天-作文素材积累 Datawhale 动手学AI Agent 关键词:AI助手开发、LangGPT框架 链接:百宝箱百宝箱平台是一款可以提供一站式 AI 原生应用的开发平台,您无需具有任何代码基础,只需通过自然语言即可三步完…...
六十:HTTP/2与gRPC框架
随着互联网技术的发展,应用程序之间的通信需求日益复杂和多样化。传统的HTTP/1.x协议虽然广泛应用,但在性能和功能方面已经难以满足现代应用的需求。为了解决这些问题,HTTP/2协议和基于其之上的gRPC框架应运而生。本文将介绍HTTP/2协议的特点…...
1.RPC基本原理
文章目录 RPC1.定义2.概念3.优缺点4.RPC结构5.RPC消息协议5.1 消息边界5.2 内容5.3 压缩 6.RPC的实现6.1 divide_protocol.py6.2 server.py6.3 client.py RPC 1.定义 远程过程调用(remote procedure call) 2.概念 广义:所有通过网络进行通讯,的调用统称为RPC调用 狭义:不采…...
vue2/3,Spring Boot以及生产环境跨域解决方案
vue2和vue3跨域解决方案 Vue 2 (基于 Webpack) 的跨域解决方案 1. 创建或编辑 vue.config.js 文件 Vue CLI为Webpack项目提供了简单的代理配置方式。你可以通过创建或编辑项目的根目录下的 vue.config.js 文件来设置开发服务器的代理规则: // vue.config.js mod…...
【centos8 镜像修改】centos8 镜像修改阿里云
要将 CentOS 8 的镜像源修改为阿里云镜像,你需要编辑 /etc/yum.repos.d/ 目录下的 .repo 文件。以下是具体的步骤: 备份原始的 .repo 文件: 在编辑之前,建议备份原始的 .repo 文件,以便在出现问题时可以恢复。 sudo cp…...

多线程编程初探:掌握基本概念与核心原理
目录 1 初识线程 1.1 线程的由来 1.2 线程的产生 1.3 进程 VS 线程 1.4 关于系统内部关于线程和进程的资源调度问题 2 页表、虚拟地址和物理地址 2.1 对物理地址的描述 2.2 对于页表设计的解析 3 线程的控制 3.1 进程创建 3.1.1 pthread_create 3.2 线程退出 3.2.1 主…...

SFTrack:面向警务无人机的自适应多目标跟踪算法——突破小尺度高速运动目标的追踪瓶颈
【导读】 本文针对无人机(UAV)视频中目标尺寸小、运动快导致的多目标跟踪难题,提出一种更简单高效的方法。核心创新在于从低置信度检测启动跟踪(贴合无人机场景特性),并改进传统外观匹配算法以关联此类检测…...

AWSLambda之设置时区
目标 希望Lambda运行的时区是东八区。 解决 只需要设置lambda的环境变量TZ为东八区时区即可,即Asia/Shanghai。 参考 使用 Lambda 环境变量...

Linux【5】-----编译和烧写Linux系统镜像(RK3568)
参考:讯为 1、文件系统 不同的文件系统组成了:debian、ubuntu、buildroot、qt等系统 每个文件系统的uboot和kernel是一样的 2、源码目录介绍 目录 3、正式编译 编译脚本build.sh 帮助内容如下: Available options: uboot …...
EC2安装WebRTC sdk-c环境、构建、编译
1、登录新的ec2实例,证书可以跟之前的实例用一个: ssh -v -i ~/Documents/cert/qa.pem ec2-user70.xxx.165.xxx 2、按照sdk-c demo中readme的描述开始安装环境: https://github.com/awslabs/amazon-kinesis-video-streams-webrtc-sdk-c 2…...
PHP 表单 - 验证邮件和URL
PHP 表单 - 验证邮件和URL 引言 在Web开发中,表单是用户与网站交互的重要途径。一个功能完善的表单不仅可以收集用户数据,还能提高用户体验。在表单设计中,验证邮件地址和URL是常见的需求。本文将详细介绍如何在PHP中实现邮件和URL的验证&a…...

174页PPT家居制造业集团战略规划和运营管控规划方案
甲方集团需要制定一个清晰的集团价值定位,从“指引多元”、“塑造 能力”以及“强化协同”等方面引领甲方做大做强 集团需要通过管控模式、组织架构及职能、授权界面、关键流程、战略 实施和组织演进路径,平衡风险控制和迅速发展,保证战略落地…...

HarmonyOS:如何在启动框架中初始化HMRouter
应用启动时通常需要执行一系列初始化启动任务,如果将启动任务都放在应用主模块(即entry类型的Module)的UIAbility组件的onCreate生命周期中,那么只能在主线程中依次执行,不但影响应用的启动速度,而且当启动…...
F(x,y)= 0 隐函数 微分法
🟦 一、隐函数微分法简介 ▶ 什么是隐函数? 显函数:形如 y f ( x ) y f(x) yf(x),变量之间是显式关系。 隐函数:形如 F ( x , y ) 0 F(x, y) 0 F(x,y)0,变量间不是直接表达的,需要通过…...
Vue作用域插槽
下面,我们来系统的梳理关于 **Vue 作用域插槽 ** 的基本知识点: 一、作用域插槽核心概念 1.1 什么是作用域插槽? 作用域插槽是 Vue 中一种反向数据流机制,允许子组件将数据传递给父组件中的插槽内容。这种模式解决了传统插槽中父组件无法访问子组件内部状态的限制。 1.2…...

serv00 ssh登录保活脚本-邮件通知版
适用于自己有服务器情况,ssh定时登录到serv00,并在登录成功后发送邮件通知 msmtp 和 mutt安装 需要安装msmtp 和 mutt这两个邮件客户端并配置,参考如下文章前几步是讲配置这俩客户端的,很简单,不再赘述 用Shell脚本实…...