Android

最近更新时间:2024-09-06 17:39:01

我的收藏
本文介绍如何替换 TUICallKit 的来电铃声,来电铃声分为应用铃声离线推送铃声

设置应用铃声

设置应用铃声有两种方式:

1. 替换默认的铃声资源

如果您通过源码依赖 TUICallKit 组件,您可以替换 res\\raw 文件夹下的音频文件来达到替换铃声的目的:
文件名
用途
phone_dialing.mp3
发起呼叫时的铃音
phone_ringing.mp3
接到呼叫时的铃音

2. 设置铃声接口

您也可以通过 setCallingBell 接口设置被叫端收到的来电铃声。
Kotlin
Java
TUICallKit.createInstance(context).setCallingBell(filePath)
TUICallKit.createInstance(context).setCallingBell(filePath);

设置静音模式

如果您的被叫端收到邀请,不需要响铃,您可以通过 enableMuteMode 设置静音模式。
Kotlin
Java
TUICallKit.createInstance(context).enableMuteMode(true)
TUICallKit.createInstance(context).enableMuteMode(true);

设置离线推送铃音

离线通知铃声仅支持以下厂商自定义:华为、小米、FCM,其他厂商例如:OPPO、vivo、荣耀等暂不支持。
华为
小米
FCM(通知消息)
FCM(数据消息)
将铃音文件添加到本地 Android Studio 工程 res/raw 目录下。
调用接口 setAndroidSound() 和 setIOSSound() 接口设置铃声。
kotlin
java
val pushInfo = OfflinePushInfo()
pushInfo.title = "Mike" pushInfo.desc = "You have a new call"
pushInfo.androidSound = "phong_ring"

val params = TUICallDefine.CallParams() params.offlinePushInfo = pushInfo TUICallKit.createInstance(context).call("mike", TUICallDefine.MediaType.Video, params, callback)
TUICallDefine.OfflinePushInfo pushInfo = new TUICallDefine.CallParams().offlinePushInfo; pushInfo.setAndroidSound("phone_ring");
注意:
华为推送的铃声为首次创建通知渠道时的铃声,之后再次设置其他铃声无效,若想更新铃音需卸载重装,详情请参见:华为自定义铃声
将铃音文件添加到本地 Android Studio 工程 res/raw 目录下。
Android 8.0 之前,调用 setAndroidSound() 和 setIOSSound() 接口设置铃声。
Android 8.0 之后,还需要登录小米厂商控制台并创建channel并做好配置,然后在 即时通信 IM 控制台中配置 ChannelID,或在参数中配置。
val pushInfo = OfflinePushInfo()
pushInfo.title = "Mike" pushInfo.desc = "You have a new call"
pushInfo.androidSound = "phong_ring"
pushInfo.androidXiaoMiChannelID = "channelID"

val params = TUICallDefine.CallParams() params.offlinePushInfo = pushInfo TUICallKit.createInstance(context).call("mike", TUICallDefine.MediaType.Video, params, callback)

FCM自定义铃声,需要在登录之前进行配置,详情请参见 setCustomFCMRing
TIMPushManager.getInstance().setCustomFCMRing("fcm_push_channel", "phone_ring", true)
Android 8.0 之前,调用setAndroidSound() 和 setIOSSound() 接口设置铃声。
Android 8.0之后,FCM 需要在 即时通信 IM 控制台中配置 channelID,或在参数中配置。
val pushInfo = OfflinePushInfo()
pushInfo.title = "Mike" pushInfo.desc = "You have a new call"
pushInfo.androidSound = "phong_ring"
pushInfo.androidFCMChannelID = "fcm_push_channel"

val params = TUICallDefine.CallParams() params.offlinePushInfo = pushInfo TUICallKit.createInstance(context).call("mike", TUICallDefine.MediaType.Video, params, callback)
注意
FCM 的数据消息可以实现类似 VOIP 的通知机制,详情参见:FCM 数据消息,通知消息和数据消息可以相互切换。
FCM 自定义铃声或者设置 ChannelID 仅支持证书模式。

如果您想自定义该铃声,可以替换 tuicallkit-kt/src/main/res/raw/phone_ringing.mp3文件。
注意:
替换掉该铃声后,不论应用在前台、后台或者离线,铃声都会是替换后的铃声。
替换后其他厂商手机收到邀请后的铃声也会是替换后的铃声。