音频在React Native应用程序内部的iOS上不起作用,Webview和AudioContext API以及WebView未出现在Safari开发菜单中

dz6r00yl  于 2023-04-07  发布在  React
关注(0)|答案(1)|浏览(171)

我有一个使用语音识别和Webview的React Native应用程序。在Webview中,有一个播放视频的Web应用程序,音频使用AudioContext Web API播放。音频和视频都来自WebRTC流。
我面临的问题是,我们无法听到iOS上的WebView的任何内容,但它在Safari浏览器中运行良好。此外,它在Android上运行良好。语音识别功能在两个平台上都有效。
当我尝试使用Mac在真实的设备上调试Webview控制台时,Safari的“开发”菜单不显示正在运行的Web应用程序。
我已经尝试检查麦克风和摄像头的权限,并且它们被授予。我还尝试使用不同版本的React Native和WebView,但问题仍然存在。
有没有人遇到过类似的问题,你是如何解决的?任何建议或指导都将不胜感激。

<WebView
   ref={webviewRef}
   originWhitelist={["*"]}
   style={{
       flex: 1,
       height: layout.height,
       backgroundColor: "transparent",
       ...StyleSheet.absoluteFillObject,
       top: 60,
   }}
   source={{
       uri: "WEB_APPLICATION_URL",
   }}
   mediaCapturePermissionGrantType={"grant"}
   useWebView2
   javaScriptEnabled
   javaScriptCanOpenWindowsAutomatically
   mediaPlaybackRequiresUserAction={false}
   domStorageEnabled
   allowsInlineMediaPlayback
   allowFileAccessFromFileURLs
   allowUniversalAccessFromFileURLs
   sharedCookiesEnabled
   thirdPartyCookiesEnabled
   mixedContentMode="compatibility"
   onMessage={handleOnMessageEvent}
/>
bf1o4zei

bf1o4zei1#

<WebView
...
allowsInlineMediaPlayback={true}
originWhitelist={["DOMAINNAME.COM"]}
remoteDebuggingEnabled={true}
...
/>

allowsInlineMediaPlayback允许音频和视频在线播放而不是全屏播放,这可能会也可能不会解决iOS上的某些音频问题。
remoteDebuggingEnabled允许您在Safari开发菜单中调试WebView
如果问题仍然存在,您可以尝试使用Web Audio API而不是AudioContext API,因为它在不同的浏览器和平台上得到更广泛的支持。

相关问题