tencent cloud

文档反馈

最后更新时间:2024-04-03 17:23:11
    本文介绍如何替换 TUICallKit 的来电铃声,来电铃声分为应用铃声离线推送铃声

    设置应用铃声

    设置应用铃声有两种方式:替换铃声音频、调用设置铃声接口。

    1、替换音频文件

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

    2、设置铃声接口

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

    3. 设置静音模式

    如果您不需要响铃,您可以通过 enableMuteMode 设置静音模式。
    Kotlin
    Java
    TUICallKit.createInstance(context).enableMuteMode(true)
    TUICallKit.createInstance(context).enableMuteMode(true);

    设置离线推送铃音

    离线通知铃声仅支持以下厂商自定义:华为、小米、FCM 和 APNs,其他厂商 OPPO、VIVO、荣耀等暂不支持。
    TUICallKit 引入了 TUIOfflinePushPush 组件,需在应用启动时,调用以下方法开启离线通知自定义铃音能力。
    Kotlin
    Java
    class DemoApplication : Application() {
    override fun onCreate() {
    TUIOfflinePushConfig.getInstance().isAndroidPrivateRing = true
    }
    }
    public class DemoApplication extends Application {
    @Override
    public void onCreate() {
    TUIOfflinePushConfig.getInstance().setAndroidPrivateRing(true);
    }
    }

    1、华为 & APNs

    调用接口 setAndroidSound() 和 setIOSSound()。
    定制铃音资源文件,将铃音文件添加到本地 Android Studio 工程 res/raw 目录下。
    Kotlin
    Java
    val pushInfo = OfflinePushInfo()
    pushInfo.iosSound = "铃声名称.mp3"
    pushInfo.androidSound = "铃声名称"
    TUICallDefine.OfflinePushInfo pushInfo = new TUICallDefine.OfflinePushInfo();
    pushInfo.setIOSSound("铃声名称.mp3");
    pushInfo.setAndroidSound("铃声名称");
    注意
    IMSDK 6.1.2155 及以上版本支持。
    华为推送消息的铃声为首次创建通知渠道时的铃声,之后再次设置其他铃声无效,若想更新自定义通知铃音需卸载重装,详见:华为自定义铃声

    2、小米

    (1)Android 8.0 之前,调用setAndroidSound() 和 setIOSSound()。定制铃音资源文件,将铃音文件添加到工程 res/raw 目录下(参考上述华为调用)。
    (2)Android 8.0 之后,还需要登录小米厂商控制台并 创建 channel 并做好配置,其中铃音文件需要添加到本地 Android Studio 工程的 res/raw 目录下。
    Kotlin
    Java
    val pushInfo = OfflinePushInfo()
    pushInfo.iosSound = "铃声名称.mp3"
    pushInfo.androidSound = "铃声名称"
    pushInfo.androidXiaoMiChannelID = "厂商申请的channelID"
    TUICallDefine.OfflinePushInfo pushInfo = new TUICallDefine.OfflinePushInfo();
    pushInfo.setIOSSound("铃声名称.mp3");
    pushInfo.setAndroidSound("铃声名称");
    pushInfo.setAndroidXiaoMiChannelID("厂商申请的channelID");
    
    
    
    注意
    Android 8.0之前的方式,IMSDK 6.1.2155 及以上版本支持。
    Android 8.0之后的方式,IMSDK 7.0.3754 及以上版本支持。

    3、FCM

    (1)Android 8.0 之前,调用 setAndroidSound() 和 setIOSSound()。定制铃音资源文件,将铃音文件添加到工程 res/raw 目录下(参考上述华为调用)。
    (2)Android 8.0之后,FCM 需要配置 channelID 以及铃音资源,TUICallKit 引入的 tuiofflinepush 组件已经处理了自定义铃声的播放。铃音文件需要添加到您本地 Android Studio 工程的 res/raw 目录下,并指定铃音名称和 channel ID 的名称,详见 PrivateConstants
    public class PrivateConstants {
    // FCM 通道指定 channel ID
    public static String fcmPushChannelId = "FCM ChannelID";
    // FCM 需指定通道的推送铃音名称,与AndroidStudio 工程里 res/raw 目录中的铃音文件名一致,不需要后缀名
    public static String fcmPushChannelSoundName = "铃声名称";
    }
    Kotlin
    Java
    val pushInfo = OfflinePushInfo()
    pushInfo.iosSound = "铃声名称.mp3"
    pushInfo.androidSound = "铃声名称"
    pushInfo.androidFCMChannelID = "厂商申请的channelID"
    TUICallDefine.OfflinePushInfo pushInfo = new TUICallDefine.OfflinePushInfo();
    pushInfo.setIOSSound("铃声名称.mp3");
    pushInfo.setAndroidSound("铃声名称");
    pushInfo.setAndroidFCMChannelID("厂商申请的channelID");
    注意
    Android 8.0之前的方式,IMSDK 6.1.2155 及以上版本支持。
    Android 8.0之后的方式,IMSDK 7.0.3754 及以上版本支持。
    FCM 自定义铃声或者设置 channel id 仅支持证书模式。
    
    
    
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持