簡體   English   中英

從 Google Meet 獲取音頻 Session Id

[英]Get Audio Session Id from Google Meet

我正在玩DynamicsProcessing 我想處理來自外部應用程序的音頻。 我只需要audioSessionId 例如,我對Play Music沒有任何問題。 我使用了BroadCastReceiverandroid.media.action.OPEN_AUDIO_EFFECT_CONTROL_SESSION ,一切都像魅力一樣。

<receiver android:name=".framework.AudioSessionReceiver">
    <intent-filter>
        <action android:name="android.media.action.OPEN_AUDIO_EFFECT_CONTROL_SESSION"/>
    </intent-filter>
</receiver>
class AudioSessionReceiver : BroadcastReceiver() {

    override fun onReceive(context: Context?, intent: Intent?) {
        intent?.let {
            val audioSessionId = intent.getIntExtra(Equalizer.EXTRA_AUDIO_SESSION, -1)
            val packageName = intent.getStringExtra(Equalizer.EXTRA_PACKAGE_NAME)
            KLog.i("audioSessionId: $audioSessionId")
            KLog.i("packageName: $packageName")
        } ?: KLog.w("Intent is null")
    }
}

挑戰在於何時我想對Google Meet做同樣的事情。 我不知道如何從應用程序中獲取 session id。 但我知道這是可能的,因為如果我在 Logcat 上查找它,我可以直接看到它:

WebRtcAudioTrackExternal: [623:191] [21746] AudioTrack: session ID: 7649, channels: 1, sample rate: 48000, max gain: 1.0

如果我手動傳遞session ID (audioSessionId),我已經檢查過它是否有效。

我怎樣才能從應用程序中做到這一點?

太感謝了:! :-)

它可以從活動AudioRecordaudioSessionId中獲取,因為它是在AudioTrack創建之后創建的,並且數字 go 從 8 到 8。

val audioManager = (context.getSystemService(Context.AUDIO_SERVICE) as AudioManager)
return audioManager.activeRecordingConfigurations[0].clientAudioSessionId - 8

我已經檢查過它與Google Meet進行視頻會議並平衡了其他人的聲音。 ;-)

https://github.com/soygabimoreno/AudioClean

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM