基于Android x86 android 9。
1、进入系统音量设置(系统 app)中,拖动媒体音量控制条控件,可以输出声音=》ok
dumpsys audio: 可以看到player有start/stop
12-14 07:10:46:175 player piid:1311 new AudioAttributes:AudioAttributes: usage=USAGE_MEDIA content=CONTENT_TYPE_MUSIC flags=0x80 tags= bundle=null
12-14 07:10:46:175 player piid:1311 has OP_PLAY_AUDIO:true in uid:1000
12-14 07:10:46:182 player piid:1311 state:started
12-14 07:10:46:702 player piid:1311 state:stopped
12-14 07:10:47:237 releasing player piid:1311
2、系统音量设置(系统 app)中,拖动电话音量控制条控件,无法输出声音。
dumpsys audio,player行为不对。
12-14 06:40:35:949 new player piid:167 uid/pid:10022/1445 type:android.media.MediaPlayer attr:AudioAttributes: usage=USAGE_UNKNOWN content=CONTENT_TYPE_UNKNOWN flags=0x0 tags= bundle=null
12-14 06:40:35:952 releasing player piid:167
12-14 06:40:38:041 new player piid:175 uid/pid:1000/1534 type:android.media.MediaPlayer attr:AudioAttributes: usage=USAGE_UNKNOWN content=CONTENT_TYPE_UNKNOWN flags=0x0 tags= bundle=null
12-14 06:40:38:045 releasing player piid:175
3、系统音量设置(系统 app)中,拖动Alarm音量控制条控件,无法输出声音。
dumpsys audio,player行为不对。
12-14 06:47:18:034 new player piid:183 uid/pid:1000/1534 type:android.media.MediaPlayer attr:AudioAttributes: usage=USAGE_UNKNOWN content=CONTENT_TYPE_UNKNOWN flags=0x0 tags= bundle=null
12-14 06:47:18:042 releasing player piid:183
12-14 06:47:18:045 new player piid:191 uid/pid:10022/1445 type:android.media.MediaPlayer attr:AudioAttributes: usage=USAGE_UNKNOWN content=CONTENT_TYPE_UNKNOWN flags=0x0 tags= bundle=null
12-14 06:47:18:048 releasing player piid:191
发现通过设置Default alarm sound后,拖动Call volume音量条和Alarm volume音量条发声正常。
针对NG/OK的情况我们分析下,OK case是选中了Default alarm sound的其中的一个;NG case是None。
130|:/ # ps -A | grep setting
system 1527 1155 3345636 184480 ep_poll 0 S com.android.settings
logcat -v time | grep 1527
ok:
12-14 07:15:02.468 V/MediaPlayer( 1527): resetDrmState: mDrmInfo=null mDrmProvisioningThread=null mPrepareDrmInProgress=false mActiveDrmScheme=false
12-14 07:15:02.468 V/MediaPlayer( 1527): cleanDrmObj: mDrmObj=null mDrmSessionId=null
12-14 07:15:02.468 V/MediaPlayer( 1527): resetDrmState: mDrmInfo=null mDrmProvisioningThread=null mPrepareDrmInProgress=false mActiveDrmScheme=false
12-14 07:15:02.468 V/MediaPlayer( 1527): cleanDrmObj: mDrmObj=null mDrmSessionId=null
12-14 07:15:02.471 D/NuPlayerDriver( 1187): NuPlayerDriver(0xe43fa380) created, clientPid(1527)
12-14 07:15:02.482 D/Ringtone( 1527): Successfully created local player
12-14 07:15:04.470 V/MediaPlayer( 1527): resetDrmState: mDrmInfo=null mDrmProvisioningThread=null mPrepareDrmInProgress=false mActiveDrmScheme=false
12-14 07:15:04.470 V/MediaPlayer( 1527): cleanDrmObj: mDrmObj=null mDrmSessionId=null
12-14 07:15:04.470 V/MediaPlayer( 1527): resetDrmState: mDrmInfo=null mDrmProvisioningThread=null mPrepareDrmInProgress=false mActiveDrmScheme=false
12-14 07:15:04.470 V/MediaPlayer( 1527): cleanDrmObj: mDrmObj=null mDrmSessionId=null
ng:
12-14 07:16:00.999 W/MediaPlayer( 1527): Couldn't open content://0@settings/system/alarm_alert_cache: java.io.FileNotFoundException: open failed: ENOENT (No such file or directory)
12-14 07:16:00.999 W/MediaPlayer( 1527): Couldn't open null: java.lang.NullPointerException: uri
12-14 07:16:01.003 E/MediaPlayerNative( 1527): Unable to create media player
12-14 07:16:01.003 V/MediaPlayer( 1527): resetDrmState: mDrmInfo=null mDrmProvisioningThread=null mPrepareDrmInProgress=false mActiveDrmScheme=false
12-14 07:16:01.003 V/MediaPlayer( 1527): cleanDrmObj: mDrmObj=null mDrmSessionId=null
12-14 07:16:01.004 V/MediaPlayer( 1527): resetDrmState: mDrmInfo=null mDrmProvisioningThread=null mPrepareDrmInProgress=false mActiveDrmScheme=false
12-14 07:16:01.004 V/MediaPlayer( 1527): cleanDrmObj: mDrmObj=null mDrmSessionId=null
12-14 07:16:01.004 D/Ringtone( 1527): Problem opening; delegating to remote player
所以是player问题导致的。