Talk SDK FAQ

语音问题

  1. 某手机进入通话后,游戏内声音被完全屏蔽掉了?

    部分手机因为硬件设置的问题,会出现这种情况,请将具体手机型号告知游密技术支持,技术人员在后台配置下即可解决。

  2. 进入通话后,通话声音和游戏背景音混杂到一起,通话效果不好,怎么办?

    用户进入通话时,会进行回声消除以避免杂音,此时若背景音和音效太高的话,回声消除会使语音被削除一部分,影响通话效果,且几路声音混杂一起难以清晰沟通。 建议在进入通话时,游戏可以将背景音和音效自动降低; 如果是直播/指挥场景,因为房间会播放音乐,建议将游戏背景音将为0; 如果是组队通话场景,建议将游戏背景音降为20%~30%,音效降为50% 同时,也建议游戏在设置中提供对通话、背景音、音效三路音量调节入口,便于用户根据自己需要实时调整。

  3. 进入通话后,部分手机的游戏背景音和音效效果为何受到了影响?

    在通话模式下,会进行回声消除以避免杂音,背景音和音效会受到回声消除的影响,质量会略有降低,而不同机型的硬件有差异,有些能被感知,有些不能被感知。

  4. 进入通话后,部分安卓手机上调音量的硬件按钮对游戏音量不起作用了?

    通话模式对应的手机通话音量,游戏背景音音效对应手机媒体音量。 进入通话模式后,大多手机把通话音量和媒体音量都调用出来供用户调节。但部分安卓机音量键缺省只控制通话音量。 对此,建议游戏在设置中提供对通话、背景音、音效三路音量调节入口,便于用户根据自己需要实时调整。

  5. 测试时,两台机器在一起通话时,为什么会出现啸叫?

    距离,音量跟话筒的不同机型拾音灵敏度是影响啸叫的主要原因。拉开距离、降低音量或者使用耳机,都会降低啸叫。 QQ或微信在一起通话时也会存此现象,在真实的用户使用场景中,多人在一起同时开启麦克风和扬声器通话的场景也比较少见,因此影响较小。

  6. 使用语音流量消耗是多少?

    非静音时平均带宽:上行4.1KB/s,下行3.9KB/s。静音平均宽带:小于0.5KB/s

  7. 一个频道能支撑多少人?服务器如何保证支撑海量用户?

    游密语音频道不限制人数,游戏可根据自己的游戏体验决定同一频道里可以有讲话权力的人数。 服务器这边是分布式无状态部署,且有负载均衡策略,可以支撑大量的游戏在线 每个游戏都会分配唯一的appkey,游戏之间相互隔离,不会影响游戏服务品质

SDK包问题

  1. 接入通话SDK后,包会增加多少?

    接入完成后,包体会增加1~2M

  2. 你们对安卓和iOS的机型支持情况如何?

    Android支持4.0以上,iOS覆盖7.0以上

  3. 请问你们支持海外吗?

    游密语音支持全球

  4. 网络切换或网络不好的时候,SDK会自动重连吗,需要自己重新加入语音频道么?

    SDK会自动重连(一定次数),如果最终重连失败,则会以回调值YOUME_CALL_TERMINATED通知给游戏方,只有收到这个回调的时候才需要再重新调用加入语音频道的接口。

接入问题

  1. 为什么有的机型声音特别小?

    部分Android手机上需检查一下 MODIFY_AUDIO_SETTINGS这个权限是否有加上,如果没有这个权限,声音就会很小。其他情况,您也可以将有问题的机型反馈给游密技术支持,技术人员在后台配置下即可解决。

  2. iPhone上,进入语音房间之前,把手机上的静音按钮置于静音状态,游戏背景音是听不到的,但进入语音房间之后,游戏背景音就出来了,静音按钮对游戏背景音和语音都不起作用,是什么原因?

    iPhone上有几种声音模式,包括 Ambient, Play, PlayAndRecord。其中,当播放的声音不是app主要的业务功能时(如游戏的背景音),选择的是Ambient模式(这是缺省的模式),在这种模式下,静音按钮是起作用的。当播放的声音是app的主要业务功能时,选择的是Play模式(如音乐播放器)或者PlayAndRecord(如网络电话),这时静音按钮是不起作用的。我们的语音使用的就是PlayAndRecord模式,所以,当进入语音房间时,因为模式从Ambient切换到了PlayAndRecord, 静音键就失去作用了。为了改善用户体验,可以在启动应用的时候就把模式设为Play, 而不是缺省的Ambient,这样不管是否进入语音房间,用户都能有一致的体验。具体可参考苹果的官方文档:AVAudioSessionCategoryAmbientavaudiosessioncategoryplayandrecord

  3. iOS 设备上,有些设备进入房间后,声音会变大或者变小,是什么原因?

    iOS上的音量控制跟android是类似的,分媒体,通话等不同音轨,但不像android那样可以让你分别在UI上设置,而是在播放某种音轨的时候音量键就对某条通道的声音起作用。进入房间之前,因为没有录音,播放的声音是媒体音量,这时音量键设置的就是媒体音量。进入房间后,启动了录音模式,系统会认为这时播放的声音就是通话音量了,所以音量就会自动调整为之前用户设置的通话音量。如果之前设置的通话的音量很大,而媒体音量很小,你就会听到声音变大了。可以这样实验一下,在进房间之前,把音量调大,再进房间,然后把音量调低;这时你退出房间,声音就变大了,再进入房间,声音又变小了。

  4. Android 通话进行当中,如果来了电话,电话声音会有异常,是什么原因?

    来电话时,MainActivity会收到onPause()事件,游戏app应该在onPause里面退出语音房间。打完电话后,MainActivity会收到onResume()事件,游戏应该在onResume里面重新进入语音房间。

  5. 如何获取iOS手机的日志?

    iPhone上取日志的方法:用xcode, 进菜单 Windows->Devices, 点击左栏你的iPhone设备,在右下角会有一个“installed app“列表,点中你们的app,然后在最下边右击齿轮图标,会出现一个菜单,点击”Download Container", 把Container目录下载到本地,然后在本地打开Container包,日志文件相对路径 AppData/Documents/youme_av_log.txt(文件名也可能是ymrtc_log.txt)。

  6. 如果已经加入了语音频道,还能加入IM的聊天频道么?能收听和发送聊天频道的语音消息吗?

    语音频道和IM聊天消息频道对应游密的两个SDK,因此,是没有任何冲突的。您可以在加入语音频道的同时,加入多个IM聊天频道。在这种情况下,收听聊天频道的语音消息是不受任何影响的,但是,录入语音消息要看具体情况,如果在语音频道中已经占用了麦克风设备(比如:自由通话模式,和主播/指挥模式下的主播/指挥),那么就不允许在IM聊天频道中录入语音消息

其他问题

  1. 有人声检测的接口吗,比如A用户说了话,可以识别到,并返回到B用户?

    目前没有人声检测的接口。 建议可使用麦克风或扬声器开启/关闭检测做替代,仍然可以起到互动引导的作用。 在Joinconference函数中将autoSendStatus设为true即可实现。

  2. 语音频道何时创建和消失?

    第一个人加入频道成功(收到回调值YOUME_CALL_CONNECTED)就相当于创建了频道;等这个频道所有的人都退出了,语音频道就消失了。

  3. 主播Windows电脑上跑Android模拟器,玩家能听到背景音乐,但听不到主播声音,但用别的软件如yy是能发出声音的,是什么原因?

    解决办法是让主播退出游戏和模拟器,然后重启模拟器和游戏,声音就有了。

  4. 已经进入A频道,再进入B频道,最终会进入到哪个频道?

    如果A频道没主动退出的话,B频道是会进入失败的,意味着还留在A频道;如果目的是希望进入频道B,那么需要先调用退出频道的逻辑,收到退出成功的消息后,再进入B频道。。

  5. 如果因为某些原因,多次调用加入同一频道的操作(或离开频道等类似情况),而没有退出,会怎样?

    虽然SDK会让你后面的不合理的函数(重复加入频道等)操作直接返回失败,但游戏方应该做好状态管理,去积极避免这种情况发生。