[英]Get Audio Session Id from Google Meet
我正在玩DynamicsProcessing
。 我想处理来自外部应用程序的音频。 我只需要audioSessionId
。 例如,我对Play Music没有任何问题。 我使用了BroadCastReceiver
听android.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),我已经检查过它是否有效。
我怎样才能从应用程序中做到这一点?
太感谢了:! :-)
它可以从活动AudioRecord
的audioSessionId
中获取,因为它是在AudioTrack
创建之后创建的,并且数字 go 从 8 到 8。
val audioManager = (context.getSystemService(Context.AUDIO_SERVICE) as AudioManager)
return audioManager.activeRecordingConfigurations[0].clientAudioSessionId - 8
我已经检查过它与Google Meet进行视频会议并平衡了其他人的声音。 ;-)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.