Как я могу принудительно преобразовать медиапоток в голосовой поток?

#android #java-stream #video-streaming #android-audiomanager

Вопрос:

Я пробовал использовать api focusRequest, но он не работает.

     private fun initVoiceMode(){
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            val focusRequest = AudioFocusRequest.Builder(AudioManager.AUDIOFOCUS_GAIN).run {
                setAudioAttributes(AudioAttributes.Builder().run {
                    setUsage(AudioAttributes.USAGE_VOICE_COMMUNICATION)
                    setContentType(AudioAttributes.CONTENT_TYPE_SPEECH)
                    build()
                })
                setAcceptsDelayedFocusGain(true)
                setOnAudioFocusChangeListener(this@WebViewActivity, handler)
                build()
            }
            val res = audioManager.requestAudioFocus(focusRequest)

            val isPlaybackSynced = when (res) {
                AudioManager.AUDIOFOCUS_REQUEST_FAILED -> {
                    false
                }
                AudioManager.AUDIOFOCUS_REQUEST_GRANTED -> {
                    true
                }
                AudioManager.AUDIOFOCUS_REQUEST_DELAYED -> {
                    false
                }
                else -> {
                    false
                }
            }
            Log.d("audio-test", "focus status: ${isPlaybackSynced}")
        }
    }
 

Но res это правда. Поток по-прежнему является потоком мультимедиа. И контроллер ориентирован на тип вызова.