Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android AudioManager请求AUDIOFOCUS从不返回AudioManager.AUDIOFOCUS\u请求\u延迟_Android_Kotlin - Fatal编程技术网

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
返回