我有一个使用语音识别和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}
/>
1条答案
按热度按时间bf1o4zei1#
allowsInlineMediaPlayback允许音频和视频在线播放而不是全屏播放,这可能会也可能不会解决iOS上的某些音频问题。
remoteDebuggingEnabled允许您在Safari开发菜单中调试WebView
如果问题仍然存在,您可以尝试使用Web Audio API而不是AudioContext API,因为它在不同的浏览器和平台上得到更广泛的支持。