耳返

更新时间: 2025/09/04 17:45:23

耳返即耳机采集监听,在设备上插入耳机或耳麦后,可以从耳机侧听到本设备麦克风采集到的声音,主要用来监听本地采集的音频。耳返音频具备低延时、高音质等特征,可以实时向主播等参与音频互动的成员反馈本端的声音数据,让主播可以实时听到本端的声音。耳返功能一般用于在线 KTV、连麦 PK、演唱会等娱乐场景。

NERoom SDK 支持耳返功能,同时支持调节耳返的音量。

注意事项

  • 请在房间内调用该方法。
  • 开启耳返功能后,必须连接上耳机或耳麦,才能正常使用耳返功能。

实现方法

  1. 在加入房间成功后,调用 enableEarback 开启耳返功能。通过 volume 参数设置采集耳返音量大小。取值范围为 0 ~ 100,默认值为 100。

    耳返功能可以随时开启,但只有当插入耳机或耳麦时生效,当拔出耳机或耳麦时自动暂停,再次插入耳机或耳麦自动恢复,可以实时关闭。

  2. 通过 onRtcAudioOutputDeviceChanged 监听播放设备的变化,当监听到播放设备切换为耳机时才开启耳返。

    /**
    * 本端音频输出设备变更通知,如切换到扬声器、听筒、耳机等
    * @param device 音频输出类型
    */
    func onRtcAudioOutputDeviceChanged(device: NEAudioOutputDevice)
    
  3. 调用 disableEarback 关闭耳返功能。

示例代码

// 监听播放设备的变化
func onRtcAudioOutputDeviceChanged(device: NEAudioOutputDevice) {
    switch device {
    case .speakerPhone:
        // 当前扬声器
    case .wiredHeadset:
        // 当前有线耳机
    case .earpiece:
        // 当前听筒
    case .bluetoothHeadset:
        // 当前蓝牙耳机
    }
}

// 打开耳返
let roomContext = NERoomKit.shared().roomService.getRoomContext(roomUuid: "房间ID")

guard let roomContext = roomContext else {
    return
}
let volume = 100
roomContext.rtcController.enableEarback(volume: volume) { code, string in
    if code == 0 {
        print("Successfully enable earback.")
    } else {
        print("Failed to enabel earback. Reason: \(string ?? "")")
    }
}

// 关闭耳返
let roomContext = NERoomKit.shared().roomService.getRoomContext(roomUuid: "房间ID")

guard let roomContext = roomContext else {
    return
}
roomContext.rtcController.disableEarback() { code, string in
    if code == 0 {
        print("Successfully disable earback.")
    } else {
        print("Failed to disable earback. Reason: \(string ?? "")")
    }
}

API 参考

方法 功能描述
enableEarback 打开耳返
onRtcAudioOutputDeviceChanged 本端音频输出设备变更通知,如切换到扬声器、听筒、耳机等
disableEarback 关闭耳返
此文档是否对你有帮助?
有帮助
去反馈
  • 注意事项
  • 实现方法
  • 示例代码
  • API 参考