iOS 有没有办法将 WebRTC“通话”作为“媒体”声音播放?

问题描述 投票:0回答:1

我目前正在开发一个使用 WebRTC 进行直播的应用程序。 但是,建立连接后,WebRTC 默认情况下会被解释为 iOS 设备的呼叫。这对我的用户来说意味着许多与音频相关的不直观行为。 (声音不能到0,与经典视频的音量不一样,当用户改变音量时我无法隐藏通话音量HUD...)

因此,我正在寻找一种本地方法来“路由”(或更改)音频类别,从“呼叫”音频到标准“媒体”音频。

有什么办法可以做到这一点吗?

ios webrtc avaudioplayer core-audio audio-streaming
1个回答
0
投票

您可以通过 Web Audio API AudioContext 路由 WebRTC 流,而不是通过 HTML5 音频元素播放它,从而将音频类别从“通话”音频更改为更像标准“媒体”音频。

请参阅 createMediaStreamSourceNodehttps://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/webrtc-integration.html 了解示例。

请注意,在 iOS 上,AudioContext 以挂起状态启动,并且必须在用户手势事件(例如指针/触摸事件)的上下文中“恢复”,然后才能听到任何声音。 在以下情况下,AudioContext 也会返回挂起状态:

  1. 断开耳机。
  2. 访问另一个浏览器选项卡并在那里播放音频。

这意味着 WebRTC 流在这些情况下将变得安静,并且必须恢复 AudioContext 才能再次听到声音。

© www.soinside.com 2019 - 2024. All rights reserved.