【问题标题】:Android notifications not playing at correct volume after VoIP callVoIP 通话后 Android 通知无法以正确的音量播放
【发布时间】:2021-04-29 19:50:49
【问题描述】:

我已经在原生 Android 应用程序中实现了 VoIP 呼叫,但我们发现了一个我遇到的错误。如果有帮助的话,我会使用 Twilio 进行 VoIP 通话。

如果我从我们的应用发出拨出 VoIP 电话,通话结束后如果我将应用置于后台并收到通知,通知的音量大约是我打电话之前的一半。这不仅是来自我的应用程序的通知,而且其他应用程序也会受到影响。如果我将我的应用从应用历史记录中滑出,使其不再在后台运行,则通知会返回以正确音量播放。

当我接到来电时不会发生这种情况,即使我已经验证相同的代码会断开呼叫连接,无论是来电还是去电。

我已经验证,当通知进来时,设备的通知音量仍然使用 AudioManager 的getStreamVolume(AudioManager.STREAM_NOTIFICATION) API 一直调高。

由于似乎所有应用程序都受到了影响,而不仅仅是我自己的应用程序,我想我可以放心地假设问题不是播放通知声音的代码。我在想可能与 VoIP 通话有关的某些东西没有被正确释放,并且操作系统本身正在以较低的音量播放音调,因为它仍然认为我们正在通话,但我找不到任何证据.

我已确认我的调用对象 Connection 正在调用 onDisconnect()destroy()。 我的ConnectionService 也被销毁了。 根据TelephonyManager,通知时的通话状态不是CALL_STATE_OFFHOOK

您还能想到什么会导致通知以降低的音量播放吗?

【问题讨论】:

  • 我也看到了这个问题。你有没有找到任何解决方案。我怀疑它是从听筒而不是扬声器中播放的,因此它要安静得多。通话后扬声器状态有问题(或者至少这是我的怀疑)
  • 这也是我在寻找答案的 SO 帖子:stackoverflow.com/questions/68168193/…
  • 我还没解决

标签: android android-notifications android-audiomanager voip-android android-connectionservice


【解决方案1】:

我们在 VOIP 应用程序中也遇到了同样的问题,尽管在我们的案例中我们直接使用 webrtc 而不是 Twilio Video - 所以我不知道这是否完全适用于您的案例,但也许可以帮助您找到一些线索。

在我们的例子中,我们发现我们没有在所有 WebRTCPeer 对象上调用 close()。这意味着在通话结束后,AudioTrack 仍然处于活动状态,这会影响音频路由......导致铃声/通知声音非常安静。

我猜想 Twilio Video SDK 的等价物是确保您取消发布和释放所有音轨(以及视频和数据轨道),然后断开 Room 对象。

https://twilio.github.io/twilio-video-android/docs/latest/com/twilio/video/LocalParticipant.html#unpublishTrack-

https://twilio.github.io/twilio-video-android/docs/latest/com/twilio/video/LocalAudioTrack.html#release--

https://twilio.github.io/twilio-video-android/docs/latest/com/twilio/video/Room.html#disconnect--

我们在检查adb shell dumpsys audio 的输出时发现了一些很好的线索——在坏状态下,我们可以在“流音量”部分看到用于响铃/警报/通知流的设备卡在“听筒”而不是而不是“speaker”,并且“Players”部分中有一个额外的 AudioTrack。

也许这会给你一些尝试的想法……祝你好运!

【讨论】:

  • 感谢 dfinn 的建议,不幸的是,我认为这对我的情况没有帮助。您提供的 3 个链接都是针对源自 Twilio 的视频库的类,我们没有使用它。我们只是使用音频。我正在调用AudioSwitch.stop(),如果我深入调用诸如audioManager.abandonAudioFocus() 之类的方法,我认为你是对的,它被卡在“扬声器”上,但我认为问题出在Twilio 库上。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-01-13
  • 1970-01-01
  • 2012-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多