实时语音
  • 平台类型
  • 框架 / 引擎
  • iOS
  • Android
  • macOS
  • Windows
  • Linux
  • Web
  • 小程序

接口变更说明

更新时间:2021-04-19 11:39

1 销毁引擎 接口变更

废弃时间 废弃版本号 预计删除时间 正式删除 SDK 版本号 是否已删除
2020-03-14 1.5.0 2020-12-31 2.0.0

1.1 变更概述

废弃接口:

@Deprecated
public static void destroyEngine();

替代为新接口:

public static void destroyEngine(IZegoDestroyCompletionCallback callback);

SDK 新增了一个带 “callback” 参数的销毁 SDK 接口以通知开发者 Zego SDK 异步释放资源占用已完毕。若无监听必要,传空即可,故对旧接口进行废弃。

1.2 接口详情

废弃接口

此接口将在 2.0.0 及之后版本彻底禁止使用并进行删除,请及时更换为新接口。

/**
 * 异步销毁引擎单例对象
 *
 * 用于释放 SDK 使用的资源。
 *
 * @deprecated 此方法在 1.5.0 版本已废弃,请使用同名 [destroyEngine:] 代替
 */
@Deprecated
public static void destroyEngine();

新接口

/**
 * 异步销毁引擎单例对象
 *
 * 用于释放 SDK 使用的资源。
 *
 * @param callback 销毁引擎完成的通知回调,可监听此回调以确保设备硬件资源被释放完成。本回调只作为引擎内部资源释放完成的通知,开发者不可以在此回调内释放与引擎相关的资源。若开发者只使用 SDK 来实现音视频功能,该参数可传 [nil]。
 */
public static void destroyEngine(IZegoDestroyCompletionCallback callback);

新接口调用示例

engine.destroyEngine(null);

2 设置扬声器静音接口变更

废弃时间 废弃版本号 预计删除时间 正式删除 SDK 版本号 是否已删除
2020-03-31 1.5.5 2020-12-31 2.0.0

2.1 变更概述

废弃接口:

@Deprecated
public abstract void muteAudioOutput(boolean mute);

替代为新接口:

public abstract void muteSpeaker(boolean mute);

命名风格和语义不清晰,故废弃旧接口。

2.2 接口详情

废弃接口

此接口将在 2.0.0 及之后版本彻底禁止使用并进行删除,请及时更换为新接口。

/** 
 * 开/关音频输出至设备
 *
 * 关闭后 SDK 将不会再传递音频数据给输出设备,以达到静音的效果
 *
 * @deprecated 此方法已废弃,请使用 [muteSpeaker] 代替
 * @param 是否关闭音频输出到设备;YES 表示关闭音频输出;NO 表示开启音频输出
 */
@Deprecated
public abstract void muteAudioOutput(boolean mute);

新接口

/** 
 * 是否静音(关闭)音频输出
 *
 * 设置静音后,SDK 所有声音都不会播放,包括拉流、媒体播放器等。但 SDK 仍会占用输出设备。
 *
 * @param 是否静音(关闭)音频输出;YES 表示静音(关闭)音频输出;NO 表示开启音频输出。默认为 NO
 */
public abstract void muteSpeaker(boolean mute);

新接口调用示例

engine.muteSpeaker(true);

3 创建媒体播放器接口变更

废弃时间 废弃版本号 预计删除时间 正式删除 SDK 版本号 是否已删除
2020-04-30 1.7.0 2020-12-31 2.0.0

3.1 变更概述

废弃接口:

public abstract class ZegoMediaPlayer {
    @Deprecated
    public static ZegoMediaPlayer createMediaPlayer();
}

替代为新接口:

public abstract class ZegoExpressEngine {
    public ZegoMediaPlayer createMediaPlayer();
}

新增通过 SDK 示例下创建媒体播放器的方法,约束了其生命周期,故对旧接口进行废弃。

3.2 接口详情

废弃接口

此接口将在 2.0.0 及之后版本彻底禁止使用并进行删除,请及时更换为新接口。


public abstract class ZegoMediaPlayer {
    /**
     * 创建媒体播放器实例对象
     *
     * 目前最多支持创建 4 个实例,超过后将返回 null
     *
     * @deprecated 此方法已废弃,请使用 ZegoExpressEngine 的 [createMediaPlayer] 函数
     * @return 媒体播放器实例,超过最大数量限制后将返回 null
     */
    @Deprecated
    public static ZegoMediaPlayer createMediaPlayer();
}

新接口


public abstract class ZegoExpressEngine {
    /**
     * 创建媒体播放器实例对象
     *
     * 目前最多支持创建 4 个实例,超过后将返回 null。媒体播放器的实例越多,对设备的性能开销越大。
     *
     * @return 媒体播放器实例,超过最大数量限制后将返回 null
     */
    public ZegoMediaPlayer createMediaPlayer();
}

新接口调用示例

ZegoMediaPlayer mediaplayer = engine.createMediaPlayer();

注意事项

  1. 新旧接口不可重复调用。
  2. 推荐使用新接口,使得实例的生命周期管理更加明确。

4 获取播放侧音频数据回调变更

废弃时间 废弃版本号 预计删除时间 正式删除 SDK 版本号 是否已删除
2020-09-10 1.15.0 2020-12-31 2.0.0

4.1 变更概述

废弃接口:

public abstract class IZegoAudioDataHandler {

    @Deprecated
    public void onRemoteAudioData(ByteBuffer data, int dataLength, ZegoAudioFrameParam param){

    }

}

替代为新接口:


public abstract class IZegoAudioDataHandler {

    public void onPlaybackAudioData(ByteBuffer data, int dataLength, ZegoAudioFrameParam param){

    }

}

旧接口命名与实际功能不符,新增一个清晰表达含义的接口,故对旧接口进行废弃。

4.2 接口详情

废弃接口

此接口将在 2.0.0 及之后版本彻底禁止使用并进行删除,请及时更换为新接口。


public abstract class IZegoAudioDataHandler {

    /**
     * 获取所有拉到的流的音频数据的回调。
     *
     * 此函数会回调全部远程用户音频混合后的数据。如果需开发者需要对所拉取的全部流的音频进行处理,就可以用这个回调。
     * 在调用 [setAudioDataHandler] 设置了监听本回调的前提下,调用 [enableAudioDataCallback] 设置了掩码 0b10 即 1 << 1 之后, 且处于拉流状态才会触发此回调。
     *
     * @deprecated 此函数已废弃,请使用 [onPlaybackAudioData] 代替
     * @param data 音频数据,pcm 格式
     * @param dataLength 数据的长度
     * @param param 音频帧参数
     */
    @Deprecated
    public void onRemoteAudioData(ByteBuffer data, int dataLength, ZegoAudioFrameParam param){

    }

}

新接口


public abstract class IZegoAudioDataHandler {

    /**
     * 获取 SDK 播放的音频数据的回调
     *
     * 此函数会回调全部要播放的音频混合后的数据。如果需开发者需要对全部要播放的音频混合后的数据进行处理,就可以用这个回调。
     * 在调用 [setAudioDataHandler] 设置了监听本回调的前提下,调用 [enableAudioDataCallback] 设置了掩码 0b10 即 1 << 1 之后, 且处于 SDK 音视频引擎启动时(预览/推流/拉流)才会触发此回调。
     * 在非拉流状态的引擎启动状态或未使用媒体播放器播放媒体文件状态时,回调的音频数据是静音的音频数据。
     *
     * @param data 音频数据,pcm 格式
     * @param dataLength 数据的长度
     * @param param 音频帧参数
     */
    public void onPlaybackAudioData(ByteBuffer data, int dataLength, ZegoAudioFrameParam param){

    }

}

新接口调用示例


public class MyIZegoAudioDataHandler extends IZegoAudioDataHandler{

    /**
     * 获取 SDK 播放的音频数据的回调
     *
     * 此函数会回调全部要播放的音频混合后的数据。如果需开发者需要对全部要播放的音频混合后的数据进行处理,就可以用这个回调。
     * 在调用 [setAudioDataHandler] 设置了监听本回调的前提下,调用 [enableAudioDataCallback] 设置了掩码 0b10 即 1 << 1 之后, 且处于 SDK 音视频引擎启动时(预览/推流/拉流)才会触发此回调。
     * 在非拉流状态的引擎启动状态或未使用媒体播放器播放媒体文件状态时,回调的音频数据是静音的音频数据。
     *
     * @param data 音频数据,pcm 格式
     * @param dataLength 数据的长度
     * @param param 音频帧参数
     */
    public void onPlaybackAudioData(ByteBuffer data, int dataLength, ZegoAudioFrameParam param){
        // 获取播放端音频数据做业务逻辑
        ...
    }

}

注意事项

新旧回调无需重复监听。

5 媒体播放器获取音量接口变更

废弃时间 废弃版本号 预计删除时间 正式删除 SDK 版本号 是否已删除
2020-04-30 1.15.0 2020-12-31 2.0.0

5.1 变更概述

废弃接口:


public abstract class ZegoMediaPlayer {

    @Deprecated
    public abstract int getVolume();

}

替代为新接口:


public abstract class ZegoMediaPlayer {

    public abstract int getPublishVolume();
    public abstract int getPlayVolume();

}

SDK 提供了更加精准的音量获取,包括媒体播放器本地播放音量的获取和混入推流音量的获取,因此废弃旧的获取接口。

5.2 接口详情

废弃接口

此接口将在 2.0.0 及之后版本彻底禁止使用并进行删除,请及时更换为新接口。


public abstract class ZegoMediaPlayer {

    /**
     * 获取媒体播放器音量
     *
     * @deprecated 此函数已废弃,请使用 [getPlayVolume] 和 [getPublishVolume] 获取对应的本地播放音量和推流音量
     */
    @Deprecated
    public abstract int getVolume();

}

新接口


public abstract class ZegoMediaPlayer {

    /**
     * 获取当前媒体播放器本地播放的音量,范围为 0 ~ 200,默认值为 60
     */
    public abstract int getPlayVolume();

    /**
     * 获取当前媒体播放器推流的音量,范围为 0 ~ 200,默认值为 60
     */
    public abstract int getPublishVolume();

}

新接口调用示例

ZegoMediaPlayer mediaplayer = engine.createMediaPlayer();
int publishVolume = mediaplayer.getPublishVolume();
int playVolume = mediaplayer.getPlayVolume();

注意事项

新旧接口不可重复调用,旧接口无法准确获取媒体播放器混入推流中的音量。

6 设置混响参数接口变更

废弃时间 废弃版本号 预计删除时间 正式删除 SDK 版本号 是否已删除
2020-11-19 1.18.0 暂时未定 暂时未定

6.1 变更概述

废弃接口:

@Deprecated
public abstract void setReverbParam(ZegoReverbParam param);

替代为新接口:

public abstract void setReverbAdvancedParam(ZegoReverbAdvancedParam param);

SDK 提供了一个设置更加丰富的混响效果参数,故对旧接口进行废弃。

6.2 接口详情

废弃接口

此接口将在 3.0.0 之后版本彻底禁止使用并进行删除,请及时更换为新接口。

/**
 * 设置混响的具体参数
 *
 * 推流过程中动态设置不同的值都会生效,当全部参数都设置成 0 时,混响关闭。
 * 此函数为 [setReverbPreset] 的进阶版本,可自行配置混响效果。
 * 如需自行配置混响/回声/变声效果请通过 [setReverbParam], [setReverbEchoParam], [setVoiceChangerParam] 三个函数组合使用。
 *
 * @deprecated 此接口在 1.18.0 以后已废弃,请使用 [setReverbAdvancedParam] 代替
 * @param param 混响参数
 */
@Deprecated
public abstract void setReverbParam(ZegoReverbParam param);

新接口

/**
 * 设置混响的具体参数
 *
 * 推流过程中动态设置不同的值都会生效,当全部参数都设置成默认值时,混响关闭。
 * 此函数为 [setReverbPreset] 的进阶版本,可自行配置混响效果。
 * 如需自行配置混响/回声/变声效果请通过 [setReverbParam], [setReverbEchoParam], [setVoiceChangerParam] 三个函数组合使用。
 *
 * @param param 混响高级参数
 */
public abstract void setReverbAdvancedParam(ZegoReverbAdvancedParam param);

新接口调用示例

ZegoReverbAdvancedParam param = new ZegoReverbAdvancedParam();
engine.setReverbAdvancedParam(param);

注意事项

新旧接口不能同时使用,否则可能会出现音效异常的情况。

7 流更新消息通知回调变更

废弃时间 废弃版本号 预计删除时间 正式删除 SDK 版本号 是否已删除
2020-11-19 1.18.0 2020-12-31 2.0.0

7.1 变更概述

废弃接口:


public abstract class IZegoEventHandler {

    @Deprecated
    public void onRoomStreamUpdate(String roomID, ZegoUpdateType updateType, ArrayList<ZegoStream> streamList){

    }

}

替代为新接口:

public abstract class IZegoEventHandler {

    public void onRoomStreamUpdate(String roomID, ZegoUpdateType updateType, ArrayList<ZegoStream> streamList, JSONObject extendedData){

    }

}

SDK 新增流更新时的可扩展字段,用于标识流更新附带的消息,如流删除原因等,故对旧接口进行废弃。

7.2 接口详情

废弃接口

此接口将在 2.0.0 及之后版本彻底禁止使用并进行删除,请及时更换为新接口。


public abstract class IZegoEventHandler {

    /**
     * 相同房间内其他用户推的流增加或减少的通知
     *
     * 用户首次登录房间时,此房间内存在其他用户正在推流,会接收到添加类型的流列表。
     * 用户已经在房间时,此房间内其他用户 新增 或 删除 流时将触发此回调通知变更的流列表。
     * 开发者可根据此回调来判断同个房间内是否有其他用户新增推流或其他用户停止推流,以此来实现主动拉流 [startPlayingStream] 或 主动停止拉流 [stopPlayingStream],并使用同时进行拉流 UI 控件的变更。
     *
     * @deprecated 此回调函数已废弃,请使用带 [extendedData] 参数的同名回调函数。
     * @param roomID 用户已登录的房间 ID,最大长度为 128 字节的字符串。
     * @param updateType 更新类型(添加/删除)
     * @param streamList 更新的流列表
     */
    @Deprecated
    public void onRoomStreamUpdate(String roomID, ZegoUpdateType updateType, ArrayList<ZegoStream> streamList){

    }

}

新接口


public abstract class IZegoEventHandler {

    /**
     * 相同房间内其他用户推的流增加或减少的通知
     *
     * 用户首次登录房间时,此房间内存在其他用户正在推流,会接收到添加类型的流列表。
     * 用户已经在房间时,此房间内其他用户 新增 或 删除 流时将触发此回调通知变更的流列表。
     * 开发者可根据此回调来判断同个房间内是否有其他用户新增推流或其他用户停止推流,以此来实现主动拉流 [startPlayingStream] 或 主动停止拉流 [stopPlayingStream],并使用同时进行拉流 UI 控件的变更。
     *
     * @param roomID 用户已登录的房间 ID,最大长度为 128 字节的字符串。
     * @param updateType 更新类型(添加/删除)
     * @param streamList 更新的流列表
     * @param extendedData 流更新附带的扩展信息
     */
    public void onRoomStreamUpdate(String roomID, ZegoUpdateType updateType, ArrayList<ZegoStream> streamList, JSONObject extendedData){

    }

}

新接口调用示例


public class MyIZegoEventHandler {

    public void onRoomStreamUpdate(String roomID, ZegoUpdateType updateType, ArrayList<ZegoStream> streamList, JSONObject extendedData){
        // 收到流更新回调,执行业务逻辑,如拉流
    }

}

注意事项

新旧回调无需重复监听。

8 是否使用内置扬声器播放声音接口变更

废弃时间 废弃版本号 预计删除时间 正式删除 SDK 版本号 是否已删除
2021-03-04 2.3.0 暂时未定 暂时未定

8.1 变更概述

废弃接口:

@Deprecated
public abstract void setBuiltInSpeakerOn(boolean enable);

替代为新接口:

public abstract void setAudioRouteToSpeaker(boolean defaultToSpeaker);

为了体现接口本身能够明确描述音频路由的概念,避免对开发者造成误解,因此对旧接口进行废弃,以新接口作为代替。

8.2 接口详情

废弃接口

此接口预计将在 3.0.0 及之后版本彻底禁止使用并进行删除,请及时更换为新接口。

/**
 * @deprecated 此函数在 2.3.0 版本以后已废弃,请使用 [setAudioRouteToSpeaker] 代替。
 *
 * 是否使用内置扬声器播放声音。
 *
 * 当选择不使用内置扬声器播放声音时,即设为 false 时,SDK 会根据系统调度选择当前优先级最高的音频输出设备播放声音
 *
 * @param enable 是否使用内置扬声器播放声音,true 表示使用内置扬声器播放声音,false 表示使用当前系统调度的优先级最高的音频输出设备播放声音
 */
@Deprecated
public abstract void setBuiltInSpeakerOn(boolean enable);

新接口

/**
 * 设置音频路由到扬声器
 *
 * 当选择不使用内置扬声器播放声音时,即设为 [false] 时,SDK 会根据系统调度选择当前优先级最高的音频输出设备播放声音
 *
 * @param defaultToSpeaker 是否使用内置扬声器播放声音,true 表示使用内置扬声器播放声音,false 表示使用当前系统调度的优先级最高的音频输出设备播放声音
 */
public abstract void setAudioRouteToSpeaker(boolean defaultToSpeaker);

新接口调用示例

mEngine.setAudioRouteToSpeaker(true);

注意事项

新旧接口不可重复使用。

9 设置日志属性字段变更

废弃时间 废弃版本号 预计删除时间 正式删除 SDK 版本号 是否已删除
2021-03-04 2.3.0 暂时未定 暂时未定

9.1 变更概述

废弃接口:

public class ZegoEngineConfig {

@Deprecated
public ZegoLogConfig logConfig;

}

替代为新接口:

public static void setLogConfig(ZegoLogConfig config);

为了体现设置 Log 属性在 SDK 里的时序要求和功能的独立性,避免开发者造成误用,因此对旧接口进行废弃,以新接口作为替代。

9.2 接口详情

废弃接口

此接口预计将在 3.0.0 及之后版本彻底禁止使用并进行删除,请及时更换为新接口。

public class ZegoEngineConfig {

/** @deprecated 此函数在 2.3.0 版本以后已废弃,请使用 [setLogConfig] 代替。 */
@Deprecated
public ZegoLogConfig logConfig;

}

新接口

/**
 * 设置日志属性
 *
 * 开发者当需要自定义日志文件大小和路径时,需要调用此函数来完成配置。必须在调用 [createEngine] 之前设置才生效,若在 [createEngine] 之后设置,则在 [destroyEngine] 后的下一次 [createEngine] 时生效。一旦调用了该接口,在destroyEngine之前,即engine的整个生命周期里,旧的通过[setEngineConfig]设置日志大小和路径的方式将无效。建议一旦使用该方法,就始终只通过该方法完成设置日志路径和大小的需求。
 *
 * @param config 日志配置
 */
public static void setLogConfig(ZegoLogConfig config);

新接口调用示例

// 在 createEngine 之前调用,若不调用,SDK 将会默认配置日志路径和日志大小
ZegoLogConfig config = new ZegoLogConfig();
config.logPath = "/sdcard/Android/data/[packageName]/files/"
ZegoExpressEngine.setLogConfig(config);

注意事项

新旧接口不可重复使用。