1 /* 2 * Copyright (C) 2007 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package android.media; 18 19 import android.bluetooth.BluetoothDevice; 20 import android.content.ComponentName; 21 import android.media.AudioAttributes; 22 import android.media.AudioDeviceAttributes; 23 import android.media.AudioFocusInfo; 24 import android.media.AudioPlaybackConfiguration; 25 import android.media.AudioRecordingConfiguration; 26 import android.media.AudioRoutesInfo; 27 import android.media.IAudioFocusDispatcher; 28 import android.media.IAudioModeDispatcher; 29 import android.media.IAudioRoutesObserver; 30 import android.media.IAudioServerStateDispatcher; 31 import android.media.ICapturePresetDevicesRoleDispatcher; 32 import android.media.ICommunicationDeviceDispatcher; 33 import android.media.IPlaybackConfigDispatcher; 34 import android.media.IRecordingConfigDispatcher; 35 import android.media.IRingtonePlayer; 36 import android.media.IStrategyPreferredDevicesDispatcher; 37 import android.media.IVolumeController; 38 import android.media.IVolumeController; 39 import android.media.PlayerBase; 40 import android.media.VolumePolicy; 41 import android.media.audiopolicy.AudioPolicyConfig; 42 import android.media.audiopolicy.AudioProductStrategy; 43 import android.media.audiopolicy.AudioVolumeGroup; 44 import android.media.audiopolicy.IAudioPolicyCallback; 45 import android.media.projection.IMediaProjection; 46 import android.net.Uri; 47 import android.os.UserHandle; 48 import android.view.KeyEvent; 49 50 /** 51 * {@hide} 52 */ 53 interface IAudioService { 54 // C++ and Java methods below. 55 56 // WARNING: When methods are inserted or deleted in this section, the transaction IDs in 57 // frameworks/native/include/audiomanager/IAudioManager.h must be updated to match the order 58 // in this file. 59 // 60 // When a method's argument list is changed, BpAudioManager's corresponding serialization code 61 // (if any) in frameworks/native/services/audiomanager/IAudioManager.cpp must be updated. 62 trackPlayer(in PlayerBase.PlayerIdCard pic)63 int trackPlayer(in PlayerBase.PlayerIdCard pic); 64 playerAttributes(in int piid, in AudioAttributes attr)65 oneway void playerAttributes(in int piid, in AudioAttributes attr); 66 playerEvent(in int piid, in int event, in int deviceId)67 oneway void playerEvent(in int piid, in int event, in int deviceId); 68 releasePlayer(in int piid)69 oneway void releasePlayer(in int piid); 70 trackRecorder(in IBinder recorder)71 int trackRecorder(in IBinder recorder); 72 recorderEvent(in int riid, in int event)73 oneway void recorderEvent(in int riid, in int event); 74 releaseRecorder(in int riid)75 oneway void releaseRecorder(in int riid); 76 playerSessionId(in int piid, in int sessionId)77 oneway void playerSessionId(in int piid, in int sessionId); 78 79 // Java-only methods below. 80 adjustSuggestedStreamVolume(int direction, int suggestedStreamType, int flags, String callingPackage, String caller)81 oneway void adjustSuggestedStreamVolume(int direction, int suggestedStreamType, int flags, 82 String callingPackage, String caller); 83 adjustStreamVolume(int streamType, int direction, int flags, String callingPackage)84 void adjustStreamVolume(int streamType, int direction, int flags, String callingPackage); 85 86 @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) setStreamVolume(int streamType, int index, int flags, String callingPackage)87 void setStreamVolume(int streamType, int index, int flags, String callingPackage); 88 handleVolumeKey(in KeyEvent event, boolean isOnTv, String callingPackage, String caller)89 oneway void handleVolumeKey(in KeyEvent event, boolean isOnTv, 90 String callingPackage, String caller); 91 isStreamMute(int streamType)92 boolean isStreamMute(int streamType); 93 forceRemoteSubmixFullVolume(boolean startForcing, IBinder cb)94 void forceRemoteSubmixFullVolume(boolean startForcing, IBinder cb); 95 isMasterMute()96 boolean isMasterMute(); 97 setMasterMute(boolean mute, int flags, String callingPackage, int userId)98 void setMasterMute(boolean mute, int flags, String callingPackage, int userId); 99 100 @UnsupportedAppUsage getStreamVolume(int streamType)101 int getStreamVolume(int streamType); 102 getStreamMinVolume(int streamType)103 int getStreamMinVolume(int streamType); 104 105 @UnsupportedAppUsage getStreamMaxVolume(int streamType)106 int getStreamMaxVolume(int streamType); 107 getAudioVolumeGroups()108 List<AudioVolumeGroup> getAudioVolumeGroups(); 109 setVolumeIndexForAttributes(in AudioAttributes aa, int index, int flags, String callingPackage)110 void setVolumeIndexForAttributes(in AudioAttributes aa, int index, int flags, String callingPackage); 111 getVolumeIndexForAttributes(in AudioAttributes aa)112 int getVolumeIndexForAttributes(in AudioAttributes aa); 113 getMaxVolumeIndexForAttributes(in AudioAttributes aa)114 int getMaxVolumeIndexForAttributes(in AudioAttributes aa); 115 getMinVolumeIndexForAttributes(in AudioAttributes aa)116 int getMinVolumeIndexForAttributes(in AudioAttributes aa); 117 getLastAudibleStreamVolume(int streamType)118 int getLastAudibleStreamVolume(int streamType); 119 setSupportedSystemUsages(in int[] systemUsages)120 void setSupportedSystemUsages(in int[] systemUsages); 121 getSupportedSystemUsages()122 int[] getSupportedSystemUsages(); 123 getAudioProductStrategies()124 List<AudioProductStrategy> getAudioProductStrategies(); 125 isMicrophoneMuted()126 boolean isMicrophoneMuted(); 127 setMicrophoneMute(boolean on, String callingPackage, int userId)128 void setMicrophoneMute(boolean on, String callingPackage, int userId); 129 setMicrophoneMuteFromSwitch(boolean on)130 oneway void setMicrophoneMuteFromSwitch(boolean on); 131 setRingerModeExternal(int ringerMode, String caller)132 void setRingerModeExternal(int ringerMode, String caller); 133 setRingerModeInternal(int ringerMode, String caller)134 void setRingerModeInternal(int ringerMode, String caller); 135 getRingerModeExternal()136 int getRingerModeExternal(); 137 getRingerModeInternal()138 int getRingerModeInternal(); 139 isValidRingerMode(int ringerMode)140 boolean isValidRingerMode(int ringerMode); 141 setVibrateSetting(int vibrateType, int vibrateSetting)142 void setVibrateSetting(int vibrateType, int vibrateSetting); 143 getVibrateSetting(int vibrateType)144 int getVibrateSetting(int vibrateType); 145 shouldVibrate(int vibrateType)146 boolean shouldVibrate(int vibrateType); 147 setMode(int mode, IBinder cb, String callingPackage)148 void setMode(int mode, IBinder cb, String callingPackage); 149 getMode()150 int getMode(); 151 playSoundEffect(int effectType)152 oneway void playSoundEffect(int effectType); 153 playSoundEffectVolume(int effectType, float volume)154 oneway void playSoundEffectVolume(int effectType, float volume); 155 loadSoundEffects()156 boolean loadSoundEffects(); 157 unloadSoundEffects()158 oneway void unloadSoundEffects(); 159 reloadAudioSettings()160 oneway void reloadAudioSettings(); 161 getSurroundFormats()162 Map getSurroundFormats(); 163 getReportedSurroundFormats()164 List getReportedSurroundFormats(); 165 setSurroundFormatEnabled(int audioFormat, boolean enabled)166 boolean setSurroundFormatEnabled(int audioFormat, boolean enabled); 167 isSurroundFormatEnabled(int audioFormat)168 boolean isSurroundFormatEnabled(int audioFormat); 169 setEncodedSurroundMode(int mode)170 boolean setEncodedSurroundMode(int mode); 171 getEncodedSurroundMode(int targetSdkVersion)172 int getEncodedSurroundMode(int targetSdkVersion); 173 avrcpSupportsAbsoluteVolume(String address, boolean support)174 oneway void avrcpSupportsAbsoluteVolume(String address, boolean support); 175 setSpeakerphoneOn(IBinder cb, boolean on)176 void setSpeakerphoneOn(IBinder cb, boolean on); 177 isSpeakerphoneOn()178 boolean isSpeakerphoneOn(); 179 setBluetoothScoOn(boolean on)180 void setBluetoothScoOn(boolean on); 181 isBluetoothScoOn()182 boolean isBluetoothScoOn(); 183 setBluetoothA2dpOn(boolean on)184 void setBluetoothA2dpOn(boolean on); 185 isBluetoothA2dpOn()186 boolean isBluetoothA2dpOn(); 187 requestAudioFocus(in AudioAttributes aa, int durationHint, IBinder cb, IAudioFocusDispatcher fd, String clientId, String callingPackageName, int flags, IAudioPolicyCallback pcb, int sdk)188 int requestAudioFocus(in AudioAttributes aa, int durationHint, IBinder cb, 189 IAudioFocusDispatcher fd, String clientId, String callingPackageName, int flags, 190 IAudioPolicyCallback pcb, int sdk); 191 abandonAudioFocus(IAudioFocusDispatcher fd, String clientId, in AudioAttributes aa, in String callingPackageName)192 int abandonAudioFocus(IAudioFocusDispatcher fd, String clientId, in AudioAttributes aa, 193 in String callingPackageName); 194 unregisterAudioFocusClient(String clientId)195 void unregisterAudioFocusClient(String clientId); 196 getCurrentAudioFocus()197 int getCurrentAudioFocus(); 198 startBluetoothSco(IBinder cb, int targetSdkVersion)199 void startBluetoothSco(IBinder cb, int targetSdkVersion); startBluetoothScoVirtualCall(IBinder cb)200 void startBluetoothScoVirtualCall(IBinder cb); stopBluetoothSco(IBinder cb)201 void stopBluetoothSco(IBinder cb); 202 forceVolumeControlStream(int streamType, IBinder cb)203 void forceVolumeControlStream(int streamType, IBinder cb); 204 setRingtonePlayer(IRingtonePlayer player)205 void setRingtonePlayer(IRingtonePlayer player); getRingtonePlayer()206 IRingtonePlayer getRingtonePlayer(); getUiSoundsStreamType()207 int getUiSoundsStreamType(); 208 setWiredDeviceConnectionState(int type, int state, String address, String name, String caller)209 void setWiredDeviceConnectionState(int type, int state, String address, String name, 210 String caller); 211 handleBluetoothA2dpDeviceConfigChange(in BluetoothDevice device)212 void handleBluetoothA2dpDeviceConfigChange(in BluetoothDevice device); 213 214 @UnsupportedAppUsage startWatchingRoutes(in IAudioRoutesObserver observer)215 AudioRoutesInfo startWatchingRoutes(in IAudioRoutesObserver observer); 216 isCameraSoundForced()217 boolean isCameraSoundForced(); 218 setVolumeController(in IVolumeController controller)219 void setVolumeController(in IVolumeController controller); 220 notifyVolumeControllerVisible(in IVolumeController controller, boolean visible)221 void notifyVolumeControllerVisible(in IVolumeController controller, boolean visible); 222 isStreamAffectedByRingerMode(int streamType)223 boolean isStreamAffectedByRingerMode(int streamType); 224 isStreamAffectedByMute(int streamType)225 boolean isStreamAffectedByMute(int streamType); 226 disableSafeMediaVolume(String callingPackage)227 void disableSafeMediaVolume(String callingPackage); 228 setHdmiSystemAudioSupported(boolean on)229 int setHdmiSystemAudioSupported(boolean on); 230 isHdmiSystemAudioSupported()231 boolean isHdmiSystemAudioSupported(); 232 registerAudioPolicy(in AudioPolicyConfig policyConfig, in IAudioPolicyCallback pcb, boolean hasFocusListener, boolean isFocusPolicy, boolean isTestFocusPolicy, boolean isVolumeController, in IMediaProjection projection)233 String registerAudioPolicy(in AudioPolicyConfig policyConfig, 234 in IAudioPolicyCallback pcb, boolean hasFocusListener, boolean isFocusPolicy, 235 boolean isTestFocusPolicy, 236 boolean isVolumeController, in IMediaProjection projection); 237 unregisterAudioPolicyAsync(in IAudioPolicyCallback pcb)238 oneway void unregisterAudioPolicyAsync(in IAudioPolicyCallback pcb); 239 unregisterAudioPolicy(in IAudioPolicyCallback pcb)240 void unregisterAudioPolicy(in IAudioPolicyCallback pcb); 241 addMixForPolicy(in AudioPolicyConfig policyConfig, in IAudioPolicyCallback pcb)242 int addMixForPolicy(in AudioPolicyConfig policyConfig, in IAudioPolicyCallback pcb); 243 removeMixForPolicy(in AudioPolicyConfig policyConfig, in IAudioPolicyCallback pcb)244 int removeMixForPolicy(in AudioPolicyConfig policyConfig, in IAudioPolicyCallback pcb); 245 setFocusPropertiesForPolicy(int duckingBehavior, in IAudioPolicyCallback pcb)246 int setFocusPropertiesForPolicy(int duckingBehavior, in IAudioPolicyCallback pcb); 247 setVolumePolicy(in VolumePolicy policy)248 void setVolumePolicy(in VolumePolicy policy); 249 hasRegisteredDynamicPolicy()250 boolean hasRegisteredDynamicPolicy(); 251 registerRecordingCallback(in IRecordingConfigDispatcher rcdb)252 void registerRecordingCallback(in IRecordingConfigDispatcher rcdb); 253 unregisterRecordingCallback(in IRecordingConfigDispatcher rcdb)254 oneway void unregisterRecordingCallback(in IRecordingConfigDispatcher rcdb); 255 getActiveRecordingConfigurations()256 List<AudioRecordingConfiguration> getActiveRecordingConfigurations(); 257 registerPlaybackCallback(in IPlaybackConfigDispatcher pcdb)258 void registerPlaybackCallback(in IPlaybackConfigDispatcher pcdb); 259 unregisterPlaybackCallback(in IPlaybackConfigDispatcher pcdb)260 oneway void unregisterPlaybackCallback(in IPlaybackConfigDispatcher pcdb); 261 getActivePlaybackConfigurations()262 List<AudioPlaybackConfiguration> getActivePlaybackConfigurations(); 263 disableRingtoneSync(in int userId)264 void disableRingtoneSync(in int userId); 265 getFocusRampTimeMs(in int focusGain, in AudioAttributes attr)266 int getFocusRampTimeMs(in int focusGain, in AudioAttributes attr); 267 dispatchFocusChange(in AudioFocusInfo afi, in int focusChange, in IAudioPolicyCallback pcb)268 int dispatchFocusChange(in AudioFocusInfo afi, in int focusChange, 269 in IAudioPolicyCallback pcb); 270 playerHasOpPlayAudio(in int piid, in boolean hasOpPlayAudio)271 oneway void playerHasOpPlayAudio(in int piid, in boolean hasOpPlayAudio); 272 setBluetoothHearingAidDeviceConnectionState(in BluetoothDevice device, int state, boolean suppressNoisyIntent, int musicDevice)273 void setBluetoothHearingAidDeviceConnectionState(in BluetoothDevice device, 274 int state, boolean suppressNoisyIntent, int musicDevice); 275 setBluetoothA2dpDeviceConnectionStateSuppressNoisyIntent(in BluetoothDevice device, int state, int profile, boolean suppressNoisyIntent, int a2dpVolume)276 void setBluetoothA2dpDeviceConnectionStateSuppressNoisyIntent(in BluetoothDevice device, 277 int state, int profile, boolean suppressNoisyIntent, int a2dpVolume); 278 setFocusRequestResultFromExtPolicy(in AudioFocusInfo afi, int requestResult, in IAudioPolicyCallback pcb)279 oneway void setFocusRequestResultFromExtPolicy(in AudioFocusInfo afi, int requestResult, 280 in IAudioPolicyCallback pcb); 281 registerAudioServerStateDispatcher(IAudioServerStateDispatcher asd)282 void registerAudioServerStateDispatcher(IAudioServerStateDispatcher asd); 283 unregisterAudioServerStateDispatcher(IAudioServerStateDispatcher asd)284 oneway void unregisterAudioServerStateDispatcher(IAudioServerStateDispatcher asd); 285 isAudioServerRunning()286 boolean isAudioServerRunning(); 287 setUidDeviceAffinity(in IAudioPolicyCallback pcb, in int uid, in int[] deviceTypes, in String[] deviceAddresses)288 int setUidDeviceAffinity(in IAudioPolicyCallback pcb, in int uid, in int[] deviceTypes, 289 in String[] deviceAddresses); 290 removeUidDeviceAffinity(in IAudioPolicyCallback pcb, in int uid)291 int removeUidDeviceAffinity(in IAudioPolicyCallback pcb, in int uid); 292 setUserIdDeviceAffinity(in IAudioPolicyCallback pcb, in int userId, in int[] deviceTypes, in String[] deviceAddresses)293 int setUserIdDeviceAffinity(in IAudioPolicyCallback pcb, in int userId, in int[] deviceTypes, 294 in String[] deviceAddresses); removeUserIdDeviceAffinity(in IAudioPolicyCallback pcb, in int userId)295 int removeUserIdDeviceAffinity(in IAudioPolicyCallback pcb, in int userId); 296 hasHapticChannels(in Uri uri)297 boolean hasHapticChannels(in Uri uri); 298 isCallScreeningModeSupported()299 boolean isCallScreeningModeSupported(); 300 setPreferredDevicesForStrategy(in int strategy, in List<AudioDeviceAttributes> device)301 int setPreferredDevicesForStrategy(in int strategy, in List<AudioDeviceAttributes> device); 302 removePreferredDevicesForStrategy(in int strategy)303 int removePreferredDevicesForStrategy(in int strategy); 304 getPreferredDevicesForStrategy(in int strategy)305 List<AudioDeviceAttributes> getPreferredDevicesForStrategy(in int strategy); 306 getDevicesForAttributes(in AudioAttributes attributes)307 List<AudioDeviceAttributes> getDevicesForAttributes(in AudioAttributes attributes); 308 setAllowedCapturePolicy(in int capturePolicy)309 int setAllowedCapturePolicy(in int capturePolicy); 310 getAllowedCapturePolicy()311 int getAllowedCapturePolicy(); 312 registerStrategyPreferredDevicesDispatcher(IStrategyPreferredDevicesDispatcher dispatcher)313 void registerStrategyPreferredDevicesDispatcher(IStrategyPreferredDevicesDispatcher dispatcher); 314 unregisterStrategyPreferredDevicesDispatcher( IStrategyPreferredDevicesDispatcher dispatcher)315 oneway void unregisterStrategyPreferredDevicesDispatcher( 316 IStrategyPreferredDevicesDispatcher dispatcher); 317 setRttEnabled(in boolean rttEnabled)318 oneway void setRttEnabled(in boolean rttEnabled); 319 setDeviceVolumeBehavior(in AudioDeviceAttributes device, in int deviceVolumeBehavior, in String pkgName)320 void setDeviceVolumeBehavior(in AudioDeviceAttributes device, 321 in int deviceVolumeBehavior, in String pkgName); 322 getDeviceVolumeBehavior(in AudioDeviceAttributes device)323 int getDeviceVolumeBehavior(in AudioDeviceAttributes device); 324 325 // WARNING: read warning at top of file, new methods that need to be used by native 326 // code via IAudioManager.h need to be added to the top section. 327 setMultiAudioFocusEnabled(in boolean enabled)328 oneway void setMultiAudioFocusEnabled(in boolean enabled); 329 setPreferredDevicesForCapturePreset( in int capturePreset, in List<AudioDeviceAttributes> devices)330 int setPreferredDevicesForCapturePreset( 331 in int capturePreset, in List<AudioDeviceAttributes> devices); 332 clearPreferredDevicesForCapturePreset(in int capturePreset)333 int clearPreferredDevicesForCapturePreset(in int capturePreset); 334 getPreferredDevicesForCapturePreset(in int capturePreset)335 List<AudioDeviceAttributes> getPreferredDevicesForCapturePreset(in int capturePreset); 336 registerCapturePresetDevicesRoleDispatcher(ICapturePresetDevicesRoleDispatcher dispatcher)337 void registerCapturePresetDevicesRoleDispatcher(ICapturePresetDevicesRoleDispatcher dispatcher); 338 unregisterCapturePresetDevicesRoleDispatcher( ICapturePresetDevicesRoleDispatcher dispatcher)339 oneway void unregisterCapturePresetDevicesRoleDispatcher( 340 ICapturePresetDevicesRoleDispatcher dispatcher); 341 adjustStreamVolumeForUid(int streamType, int direction, int flags, in String packageName, int uid, int pid, in UserHandle userHandle, int targetSdkVersion)342 oneway void adjustStreamVolumeForUid(int streamType, int direction, int flags, 343 in String packageName, int uid, int pid, in UserHandle userHandle, 344 int targetSdkVersion); 345 adjustSuggestedStreamVolumeForUid(int streamType, int direction, int flags, in String packageName, int uid, int pid, in UserHandle userHandle, int targetSdkVersion)346 oneway void adjustSuggestedStreamVolumeForUid(int streamType, int direction, int flags, 347 in String packageName, int uid, int pid, in UserHandle userHandle, 348 int targetSdkVersion); 349 setStreamVolumeForUid(int streamType, int direction, int flags, in String packageName, int uid, int pid, in UserHandle userHandle, int targetSdkVersion)350 oneway void setStreamVolumeForUid(int streamType, int direction, int flags, 351 in String packageName, int uid, int pid, in UserHandle userHandle, 352 int targetSdkVersion); 353 isMusicActive(in boolean remotely)354 boolean isMusicActive(in boolean remotely); 355 getDevicesForStream(in int streamType)356 int getDevicesForStream(in int streamType); 357 getAvailableCommunicationDeviceIds()358 int[] getAvailableCommunicationDeviceIds(); 359 setCommunicationDevice(IBinder cb, int portId)360 boolean setCommunicationDevice(IBinder cb, int portId); 361 getCommunicationDevice()362 int getCommunicationDevice(); 363 registerCommunicationDeviceDispatcher(ICommunicationDeviceDispatcher dispatcher)364 void registerCommunicationDeviceDispatcher(ICommunicationDeviceDispatcher dispatcher); 365 unregisterCommunicationDeviceDispatcher( ICommunicationDeviceDispatcher dispatcher)366 oneway void unregisterCommunicationDeviceDispatcher( 367 ICommunicationDeviceDispatcher dispatcher); 368 areNavigationRepeatSoundEffectsEnabled()369 boolean areNavigationRepeatSoundEffectsEnabled(); 370 setNavigationRepeatSoundEffectsEnabled(boolean enabled)371 oneway void setNavigationRepeatSoundEffectsEnabled(boolean enabled); 372 isHomeSoundEffectEnabled()373 boolean isHomeSoundEffectEnabled(); 374 setHomeSoundEffectEnabled(boolean enabled)375 oneway void setHomeSoundEffectEnabled(boolean enabled); 376 setAdditionalOutputDeviceDelay(in AudioDeviceAttributes device, long delayMillis)377 boolean setAdditionalOutputDeviceDelay(in AudioDeviceAttributes device, long delayMillis); 378 getAdditionalOutputDeviceDelay(in AudioDeviceAttributes device)379 long getAdditionalOutputDeviceDelay(in AudioDeviceAttributes device); 380 getMaxAdditionalOutputDeviceDelay(in AudioDeviceAttributes device)381 long getMaxAdditionalOutputDeviceDelay(in AudioDeviceAttributes device); 382 requestAudioFocusForTest(in AudioAttributes aa, int durationHint, IBinder cb, in IAudioFocusDispatcher fd, in String clientId, in String callingPackageName, int uid, int sdk)383 int requestAudioFocusForTest(in AudioAttributes aa, int durationHint, IBinder cb, 384 in IAudioFocusDispatcher fd, in String clientId, in String callingPackageName, 385 int uid, int sdk); 386 abandonAudioFocusForTest(in IAudioFocusDispatcher fd, in String clientId, in AudioAttributes aa, in String callingPackageName)387 int abandonAudioFocusForTest(in IAudioFocusDispatcher fd, in String clientId, 388 in AudioAttributes aa, in String callingPackageName); 389 getFadeOutDurationOnFocusLossMillis(in AudioAttributes aa)390 long getFadeOutDurationOnFocusLossMillis(in AudioAttributes aa); 391 registerModeDispatcher(IAudioModeDispatcher dispatcher)392 void registerModeDispatcher(IAudioModeDispatcher dispatcher); 393 unregisterModeDispatcher(IAudioModeDispatcher dispatcher)394 oneway void unregisterModeDispatcher(IAudioModeDispatcher dispatcher); 395 } 396