自定义呼叫铃声
更新时间: 2024/10/14 16:15:20
本文介绍在呼叫组件中如何自定义呼叫铃声,包括被叫铃声、呼叫等待铃声等。
功能介绍
SoundHelper
类主要用于设置呼叫等待时、被叫时的铃声。
实现方法
如果您希望自定义呼叫组件中用户的响铃,请在初始化呼叫组件时,在 CallKitUIOptions
对象中生成 soundHelper
实例,设置呼叫铃声。
-
将自定义铃声放在
raw
文件夹下。 -
在
soundResources
方法中设置铃声的资源 ID。soundResources
方法的ringerTypeEnum
参数为枚举类型。组件在内部实现了响铃逻辑,共分为五种类型的铃声,通过AVChatSoundPlayer.RingerTypeEnum
进行枚举铃声的种类,具体如下:RingerTypeEnum 类型 说明 CONNECTING 主叫呼叫提示。 NO_RESPONSE 被叫超时未响应。 PEER_BUSY 被叫忙线。 PEER_REJECT 被叫拒接。 RING 被叫响铃。 -
(可选)自实现铃声播放。
适用于 2.0.0 及之后的版本呼叫组件从 2.0.0 版本起,默认通过
SoundPool
类实现铃声播放,存在一些铃声文件的限制。您可以重写play
和stop
方法,实现自定义呼叫铃声。Java
CallKitUIOptions options = new CallKitUIOptions.Builder() .soundHelper(new SoundHelper(){ /** * 若用户需要修改铃声,其他不需要变化,若不需要播放则直接返回 null */ @Nullable @Override public Integer soundResources(@NonNull AVChatSoundPlayer.RingerTypeEnum type) { return super.soundResources(type); } /** * (可选)用户可在此实现自己的铃声播放逻辑和{@link SoundHelper#stop(Context, AVChatSoundPlayer.RingerTypeEnum)}方法同时修改 */ @Override public void play(@NonNull Context context, @NonNull AVChatSoundPlayer.RingerTypeEnum type) { super.play(context, type); } /** * (可选)用户可在此实现自己的铃声停止逻辑和{@link SoundHelper#play(Context, AVChatSoundPlayer.RingerTypeEnum)}方法同时修改 */ @Override public void stop(@NonNull Context context, @Nullable AVChatSoundPlayer.RingerTypeEnum type) { super.stop(context, type); } }) // 初始化呼叫组件时,传入 options 配置信息 CallKitUI.init(getApplicationContext(), options);
适用于 2.0.0 之前的版本SoundHelper#isEnable
为true
表示响铃,false
表示禁止响铃,您可以通过此方法完成响铃的开关。Java
CallKitUIOptions options = new CallKitUIOptions.Builder() .soundHelper(new SoundHelper(){ @Override public boolean isEnable() { return true; } @Nullable @Override public Integer soundResources(@NonNull AVChatSoundPlayer.RingerTypeEnum type) { return super.soundResources(type); } } // 初始化呼叫组件时,传入 options 配置信息 CallKitUI.init(getApplicationContext(), options);
此文档是否对你有帮助?