web sdk在已webview的形式嵌入到iOS以及安卓中出现异常情况

1、iOS中播放会自动进入全屏模式
2、安卓中无法正常播放
请问有什么好的解决办法吗

iPhone Safari中播放视频时只能全屏的,如果要禁止这种情况把web视频嵌入播放,可以在前端 在video标签前加上一个“webkit-playsinline”属性,类似<video id = “” width =’’ ‘’ height=’’’’ webkit-playsinline.> 也还有其他实现方法,看您需求。
安卓无法正常播放的具体表现是什么,黑屏还是其他什么情况,可以用我们的web demo单独试一下,测试一下是不是集成的问题排除设备兼容问题。http://download.agora.io/sdk/release/Agora_Web_SDK_v3_0_2_FULL.zip?_ga=2.11875892.163436012.1584861394-98253085.1584000838

进入之后是黑屏

我调用play方法,sdk就自己把video标签放到容器里面了,不给我加属性的机会啊

https://developer.apple.com/documentation/webkit/wkwebviewconfiguration/1614793-allowsinlinemediaplayback
您看一下这里的方法,应该能满足禁止全屏的需求。 安卓端的问题排查先确认权限上的问题,Android上有些安全软件有管理权限,再检查下有没有其他应用在后台占用影响到了。

如果用的是我们3.0.0以前的版本,在用户通过websdk加入频道的时候要确保调用enableWebSdkInteroperability(),否则web端用户看Native画面是会黑屏的

enableWebSdkInteroperability这个方法在文档的哪个位置?没找到

https://docs.agora.io/cn/Voice/API%20Reference/java/classio_1_1agora_1_1rtc_1_1_rtc_engine.html#a49636ee063476d7c3da533668771fa03 请看这里的API参考,这个问题在视频互动和通话中是可能出现的

enableWebSdkInteroperability()

abstract int io.agora.rtc.RtcEngine.enableWebSdkInteroperability ( boolean enabled ) abstract

打开与 Web SDK 的互通(仅在直播下适用)。

弃用:

v3.0.0。自 Native SDK 3.0.0 及之后,SDK 自动开启与 Web SDK 的互通,无需调用该方法开启。

该方法打开或关闭与 Agora Web SDK 的互通。如果有用户通过 Web SDK 加入频道,请确保调用该方法,否则 Web 端用户看 Native 端的画面会是黑屏。

该方法仅在直播场景下适用,通信场景下默认互通是打开的。

参数

enabled 是否打开与 Agora Web SDK 的互通:

  • true:打开互通
  • false:关闭互通(默认)

返回

  • 0:方法调用成功
  • <0:方法调用失败

我这个是纯web sdk, 没有使用native sdk

如果确认过Android端的权限没有受影响,可以把黑屏用户的UID和时间段发过来,我后台来分析下

另外,建议安卓设备可以换一下浏览器再看看

有的时候过一会会报出来播放失败,我就会显示播放按钮,让用户自己触发播放,但有的时候直接黑屏,不会说播放失败

这种情况一般是集成问题了,看一下代码逻辑,也可以先测试下直接用我们的demo,看看会不会出现这样的情况

可以把浏览器的日志发来我们协助排查下

请开启日志上传(https://docs.agora.io/cn/faq/logfile#开启关闭日志上传) 后告知我们频道号、UID 和时间点,我们来分析一下。

现在我处理了一下,不自动播放了,应该是webview 浏览器的自动播放策略导致的,我每次都显示出播放按钮,让用户自己触发播放就没问题了

那就好:clap::clap::clap:

集成只能是太烦了,Native开发人员因为懒省去他们开发的时间,可他们不知道我们要浪费多2倍的时间来集成

哈哈哈没办法,Native得保证灵活性和泛用性,确实集成自己项目的时候挺辛苦的,祝你project成功!