Skip to content
elesos edited this page Oct 9, 2019 · 26 revisions

常见问题

  • 请尽量使用最新版本进行测试

问题反馈(请将每问答案给出),请尽量在github上提issue反馈:

  • 1 哪2端进行测试的,比如是Android和web互测,还是Android和iOS互测?是不是自已搭建的服务端程序?
  • 2 如果是web端,是什么浏览器,版本是多少,是手机上的浏览器还是pc,mac上的浏览器?
  • 3 拷贝相关日志供我们分析。请提供server端日志和测试的客户端日志:安卓的日志请连接android studio通过starrtc过滤后拷贝,ios通过xcode输出后拷贝,pc的日志文件在star.rtc, web的按f5看控制台输出后,提供完整截图。

Server端常见问题

  • 虚拟机里面搭建的服务,无法连通。
    如果是vmware,请使用桥接网络。

  • 服务端重启后,sdk会自动重连登录吗?

  • 关于录制。
    两个人相互通话,会存两个视频;

Android端常见问题

  • STAR_VIDEO_CONFIG_360BW_640BH_180SW_320SH 这个代表的分辨率是多少?
    大图360x640, 小图180x320, BW=big width,SH=small height

  • 请问VoIP语音在通话过程中能否切换网络继续通话(WiFi切换4G 4G切换WiFi)?
    切换后端口会改变,目前没做这样的适配。

  • java.io.IOException: Cleartext HTTP traffic to ips2.starrtc.com not permitted
    android9.0会出来这个问题,需要更改网络安全配置

  • 安卓端在哪里处理收到的系统消息?
    可以把系统当作一个人,系统消息跟正常的消息一样,接收也是一样用XHChatManagerListener,onReceivedMessage

  • 使用SDK后,无法看到视频画面
    记得要在Manifest里设置一下,android:hardwareAccelerated=“true”

iOS端常见问题

  • ld: 'libstarRTC.a(XHLiveManager.o)' does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. file 'libstarRTC.a' for architecture arm64 clang: error: linker command failed with exit code 1 (use -v to see invocation)
    把你项目的bitcode关掉

web端常见问题

  • web访问不支持http访问吗?
    这个是浏览器本身要求的,chrome不支持https。
  • 支持什么浏览器?
    目前支持chrome最新版,请升级chrome.
  • demo打不开摄像头?
    https://webrtc.github.io/samples/src/content/getusermedia/gum/ 访问这个看看是不是正常。
  • 现在有安卓端和web端一对一语音通话的例子吗,web端好像只能视频通话
    没有,但是改一下代码很好实现,createStream的时候,传入一个参数,{ "video": false, "audio": { deviceId: { ideal: ["default"] } } }
  • 本地开发必须部署web服务器吗?
    不用,可以直接拖到浏览器里面就可以测试了。 WIN PC端常见问题

其它常见问题

  • 是完全免费的吗?
    完全永久免费!包括服务端和ios、android、web、win PC端,服务端程序可以自行私有部署,无需鉴权。支持在内网部署,在阿里云,腾讯云上部署。

  • 是全部开源?
    部分开源,服务端目前没有开源,免费开放可执行程序,客户端部分开源。现在开源容易劣币驱逐良币,导致失去持续开发的动力,待starRTC小有名气后可能会全部开源出来。

  • 后台是什么语言开发的?
    后台服务端程序都是纯c开发,为二进制文件,拷贝后执行即可,不需要安装第3方依赖库。

  • 服务端没有代码,怎么开发业务逻辑?
    我们的服务端支持Agent Event Center,通过配置文件填写一个http请求地址,服务端就会将重要事件全部发到该地址进行通知或请示, 例如一对一视频通话,A用户和B用户即将开始通信的时候,服务端会向您的http地址请求:
    {"action" : "AEC_VOIP_USER_ONLINE","userId" : "xxx","userId2" : "xxx","time" : "xxxx"}
    userId是指呼叫者,userId2是指接收者,您的http服务就可以去查询业务逻辑,比如userId是否是VIP会员,然后返回 {"status":"x"}来告诉服务端是否允许该通话对进行通信。
    而且每过1分钟,音视频服务都会通过http请求,通知AEC_VOIP_USER_PLAYING事件,如果该用户余额不足,那您就可以返回0告诉服务端结束通话了。
    与服务端程序的交互可以用自己熟悉的语言开发,比如php, python,go,nodejs,c#,java等。
    更详细内容,请参与Agent Event Center文档。https://docs.starrtc.com/en/docs/aec-index.html 示例代码在 https://github.com/starrtc/starrtc-server/tree/master/server-api

  • 是基于webRTC开发的吗?
    我们的技术架构与webRTC毫无关系,全自研方案,但兼容了webRTC,web端就是通过webRTC获取流,然后通过服务端程序进行协议转换。

  • 支持动态码率调整吗?
    支持,自适应基于丢包和网络抖动来衡量,我们是同时基于发端和收端计算网络质量,然后远端反馈回来,最终综合成一个评分,如果低于一定的质量,我们就会降低码率,码率低到一定的程度,那么帧率也会跟着降低。如果是voip,除了你自己的网络质量,服务器还会将远端对方的质量也通过协议反馈回去,最终发送质量是经过综合调整的。

  • 弱网环境下怎么样?
    经过测试,在丢包率在40%的情况下仍能流畅运行。

  • P2P打通的成功率有多少?
    通过数百万用户的使用情况看,目前我们的成功率在60%左右。

  • im单机部署支持多少并发?
    服务端程序没有进行任何限制,具体视机器配置而定。

  • VOIP视频通话是中转还是P2P?
    看网络环境,能打洞成功的,才走P2P,不成功的就中转,中转和直连会自动无缝切换,同时会有状态回调通知(安卓示例程序中,在右上角会有绿色小方框标记,如果出现绿色小方框,说明当前走的是p2p直连)。如果是局域网内部,甚至不需要部署任何服务器,直接用点对点直连即可。

  • 客户端集成文档在哪里?

https://docs.starrtc.com/en/docs/ 左侧有安卓,ios,web和win pc的集成文档

  • 两端无法互通时,怎么排查? 首先看你测试的什么功能,如果是im消息,就看msgServer的日志,如果是群消息,就看groupServer的日志,如果是聊天室,就看chatRoomServer的日志,如果是观看,就看liveVdnServer的日志,如果是创建直播,创建会议,创建小班课,就看liveSrcServer的日志,可以用命令tail -f msgServer.log 实时查看日志输出,如果在客户端上做相应的操作,后台日志没有任何刷新,可以肯定是网络不通导致的。请自行查防火墙和安全组规则配置。

  • 群列表,直播列表,会议等列表无法获取
    请检查服务端starrtc.conf配置文件的内容(默认是注释状态,表示没有开启aecurl),然后看各客户端设置里面的aecURL 是什么状态。如果服务端没有开启aecurl(即注释状态),各客户端也必须关闭。如果客户端想开启这个aecURL,服务端必须将aecurl前面的注释去掉以开启aecurl,并重启服务端程序。重启命令 ./stop.sh && ./start.sh , 注意:aecurl目前不支持https地址

  • 不能发文件和图片吗?
    目前如果要发图片的话,您可以上传到自己服务器或使用第3方图片存储(如七牛云,阿里云OSS等)将图片上传后,在消息接口中发送url即可(可以发送自定义的json消息,将url封装在json里面)。

Clone this wiki locally