Android AudioManager请求AUDIOFOCUS从不返回AudioManager.AUDIOFOCUS\u请求\u延迟
我目前正在制作一个与音乐播放相关的应用程序。我已经努力了好几天来提供的功能。它是根据Android AudioManager请求AUDIOFOCUS从不返回AudioManager.AUDIOFOCUS\u请求\u延迟,android,kotlin,Android,Kotlin,我目前正在制作一个与音乐播放相关的应用程序。我已经努力了好几天来提供的功能。它是根据 AudioFocusRequest val audioManager=getSystemService(Context.AUDIO\u服务)作为audioManager 毛迪奥属性变量= AudioAttributes.Builder() .setUsage(AudioAttributes.USAGE\u媒体) .setContentType(AudioAttributes.CONTENT\u TYPE\u
AudioFocusRequest
val audioManager=getSystemService(Context.AUDIO\u服务)作为audioManager 毛迪奥属性变量= AudioAttributes.Builder() .setUsage(AudioAttributes.USAGE\u媒体) .setContentType(AudioAttributes.CONTENT\u TYPE\u MUSIC) .build() val focusRequest=AudioFocusRequest.Builder(AudioManager.AUDIOFOCUS\u增益) .setAudioAttributes(mAudioAttributes) .setAcceptsDelayedFocusGain(真) .setOnAudioFocusChangeListener(this@AudioFocusHelper) .build()
requestFocus
fun requestFocus(){ val res=audioManager.requestAudioFocus(focusRequest) 同步(焦点锁定){ playbackNowAuthorized=when(res){ AudioManager.AUDIOFOCUS\u请求\u失败->{ Log.d(标签“AudioManager.AUDIOFOCUS请求失败”) 如果(isCallState){ ToastManager.showtoos(getString(R.string.toast\u not\u play\u on\u busy)) } 假的 } AudioManager.AUDIOFOCUS\u请求\u已批准->{ Log.d(标签“AudioManager.AUDIOFOCUS请求已批准”) play() 真的 } AudioManager.AUDIOFOCUS\u请求\u延迟->{ Log.d(标签“AudioManager.AUDIOFOCUS\u请求\u延迟”) playbackDelayed=true 假的 } else->false } } }
onAudioFocusChange
覆盖音频焦点更改(焦点更改:Int){ 何时(焦点更改){ AudioManager.AUDIOFOCUS\u增益-> 如果(播放延迟| |恢复聚焦增益){ 同步(焦点锁定){ 回放延迟=错误 resumeOnFocusGain=false } play() } AudioManager.AUDIOFOCUS\u损失->{ 同步(焦点锁定){ resumeOnFocusGain=false 回放延迟=错误 } 如果(显示){ ToastManager.showtoos(getString(R.string.toast\u AUDIOFOCUS\u LOSS)) } 暂停() } AudioManager.AUDIOFOCUS\u丢失\u瞬态->{ 同步(焦点锁定){ 回放延迟=错误 resumeOnFocusGain=true } 如果(显示){ ToastManager.showtoos(getString(R.string.toast\u AUDIOFOCUS\u LOSS)) } 暂停() } AudioManager.AUDIOFOCUS\u丢失\u瞬态\u可以\u DUCK->{ //…暂停或回避取决于您的应用程序 } } }
requestAudioFocus()
函数从不返回AUDIOFOCUSREQUEST\u DELAYED
。我在打电话(焦点锁定状态)时尝试了requestAudioFocus()
,以获得AUDIOFOCUS\u REQUEST\u DELAYED
。当我在手机上请求对焦时,它总是返回AudioManager。AUDIOFOCUS\u请求\u失败
我可以获得AUDIOFOCUS\u REQUEST\u DELAYED
的场景可能是错误的。我想知道一个场景,在那里我可以得到AUDIOFOCUS\u REQUEST\u DELAYED
。除了场景之外,我还想知道为什么我没有得到AUDIOFOCUS\u REQUEST\u DELAYED
返回