5. 均衡器调试功能
5.1. 获取均衡器参数
JL_BluetoothManager方式
function :
AttrAndFunCode.SYS_INFO_FUNCTION_PUBLIC – 公共属性mask :
0x01 << AttrAndFunCode.SYS_INFO_ATTR_EQ_PRESET_VALUE or 0x01 << AttrAndFunCode.SYS_INFO_ATTR_EQ – EQ预设值和EQ信息命令构造
CommandBase getEqInfoCmd = CommandBuilder.buildGetEqPresetAndEqValueCmd();
代码示例参考 查询设备系统信息
RCSPController方式
//获取RCSPController对象
RCSPController controller = RCSPController.getInstance();
//添加蓝牙RCSP事件监听器
controller.addBTRcspEventCallback(new BTRcspEventCallback() {
@Override
public void onEqPresetChange(BluetoothDevice device, EqPresetInfo eqPresetInfo) {
//此处将会回调均衡器预设值
}
@Override
public void onEqChange(BluetoothDevice device, EqInfo eqInfo) {
//此处将会回调均衡器效果信息
}
});
//执行获取均衡器信息功能并等待结果回调
controller.getEqInfo(controller.getUsingDevice(), new OnRcspActionCallback<Boolean>() {
@Override
public void onSuccess(BluetoothDevice device, Boolean message) {
//成功回调
//结果将会在BTRcspEventCallback#onEqPresetChange、BTRcspEventCallback#onEqChange回调
}
@Override
public void onError(BluetoothDevice device, BaseError error) {
//失败回调
//error - 错误信息
}
});
Note
Note
5.1.1. EqPresetInfo
EQ预设信息
public class EqPresetInfo {
private int number;
private List<EqInfo> eqInfos;
private int[] freqs;
}
5.2. 配置均衡器参数
JL_BluetoothManager方式
function :
AttrAndFunCode.SYS_INFO_FUNCTION_PUBLIC – 公共属性type :
AttrAndFunCode.SYS_INFO_ATTR_EQ – 标识均衡器参数value : 参数
是否动态调整 |
参数格式 |
备注 |
|---|---|---|
false |
eqMode(1Byte) + eqValue(10 bytes) |
eqMode最高bit为0, 表示默认参数 |
true |
eqMode(1Byte) + length(1Byte) + eqValue(n Bytes) |
eqMode最高bit为1, 表示动态调整, |
命令构造
boolean isDynamic = true; //是否支持动态变化
int eqMode = 6; //EQ模式 -- 自定义
byte[] gains = new byte[10]; //EQ增益数组 - 根据动态段数决定
CommandBase setEqInfoCmd = CommandBuilder.buildSetEqValueCmd(isDynamic, (byte) eqMode, gains)();
代码示例参考 设置设备系统属性
RCSPController方式
//获取RCSPController对象
RCSPController controller = RCSPController.getInstance();
//添加蓝牙RCSP事件监听器
controller.addBTRcspEventCallback(new BTRcspEventCallback() {
@Override
public void onEqChange(BluetoothDevice device, EqInfo eqInfo) {
//此处将会回调均衡器效果信息
}
});
EqInfo eqInfo = null; //EQ信息,不能为空
//执行配置均衡器效果功能并等待结果回调
controller.configEqInfo(controller.getUsingDevice(), eqInfo, new OnRcspActionCallback<Boolean>() {
@Override
public void onSuccess(BluetoothDevice device, Boolean message) {
//成功回调
}
@Override
public void onError(BluetoothDevice device, BaseError error) {
//失败回调
//error - 错误信息
}
});
Note
5.2.1. EqInfo
均衡器信息
public class EqInfo {
/**
* EQ模式
*/
private int mode;
/**
* 增益值数组
*/
private byte[] value = new byte[10];
/**
* 预设值数组
*/
private int[] freqs = BluetoothConstant.DEFAULT_EQ_FREQS;
/**
* 是否动态EQ
*/
private boolean dynamic;
/**
* 预设值数组长度
*/
private int count = 10;
}
5.2.2. EQ模式对照表
数值 |
模式名称 |
|---|---|
0 |
标准音乐模式(Standard Music Mode) |
1 |
摇滚音乐模式(Rock Music Mode) |
2 |
流行音乐模式(Popular Music Mode) |
3 |
古典音乐模式(Classical Music Mode) |
4 |
爵士音乐模式(Jazz Music Mode) |
5 |
乡村音乐模式(Country Music Mode) |
6 |
自定义音乐模式(Custom Music Mode) |
5.3. 获取拓展参数
JL_BluetoothManager方式
function :
AttrAndFunCode.SYS_INFO_FUNCTION_PUBLIC – 公共属性mask :
0x01 << AttrAndFunCode.SYS_INFO_ATTR_FIXED_LEN_DATA_FUN – 拓展参数命令构造
CommandBase getFixedLenDataCmd = CommandBuilder.buildGetFixedLenDataCmd();
代码示例参考 查询设备系统信息
RCSPController方式
//获取RCSPController对象
RCSPController controller = RCSPController.getInstance();
//添加蓝牙RCSP事件监听器
controller.addBTRcspEventCallback(new BTRcspEventCallback() {
@Override
public void onExpandFunction(BluetoothDevice device, int type, byte[] data) {
//此处将会回调额外功能信息
}
});
//执行获取额外功能信息功能并等待结果回调
controller.getExpandDataInfo(controller.getUsingDevice(), new OnRcspActionCallback<Boolean>() {
@Override
public void onSuccess(BluetoothDevice device, Boolean message) {
//成功回调
//结果将会在BTRcspEventCallback#onExpandFunction回调
}
@Override
public void onError(BluetoothDevice device, BaseError error) {
//失败回调
//error - 错误信息
}
});
5.4. 设置拓展参数
JL_BluetoothManager方式
function :
AttrAndFunCode.SYS_INFO_FUNCTION_PUBLIC – 公共属性type :
AttrAndFunCode.SYS_INFO_ATTR_FIXED_LEN_DATA_FUN – 标识拓展参数value : mask(4Bytes) + data(n Bytes)
命令构造
int mask = 0x03; //拓展掩码 - Bit0 --混响 Bit1 -- 动态限幅
byte[] data = new byte[0]; //参数, 格式: LTV格式, 由多个LTV数据组成
CommandBase setFixedLenDataCmd = CommandBuilder.buildSetFixedLenDataCmd(mask, data);
代码示例参考 设置设备系统属性
RCSPController方式
//获取RCSPController对象
RCSPController controller = RCSPController.getInstance();
//mask - 功能掩码
//data - 参数数据
//执行设置额外功能信息功能并等待结果回调
controller.setExpandDataInfo(controller.getUsingDevice(), mask, data, new OnRcspActionCallback<Boolean>() {
@Override
public void onSuccess(BluetoothDevice device, Boolean message) {
//成功回调
}
@Override
public void onError(BluetoothDevice device, BaseError error) {
//失败回调
//error - 错误信息
}
});
Warning
5.5. 设置混响
仅RCSPController支持接口方式
//获取RCSPController对象
RCSPController controller = RCSPController.getInstance();
//混响参数,不能为空
ReverberationParam param = null;
//执行设置混响功能并等待结果回调
controller.setReverberationParameter(controller.getUsingDevice(), param, new OnRcspActionCallback<Boolean>() {
@Override
public void onSuccess(BluetoothDevice device, Boolean message) {
//成功回调
}
@Override
public void onError(BluetoothDevice device, BaseError error) {
//失败回调
//error - 错误信息
}
});
Warning
需要判断设备是否支持该功能(通过获取拓展参数, 是否有对应参数返回来确认)
Note
5.5.1. ReverberationParam
混响参数
public class ReverberationParam {
private boolean isOn; //开关
private int depthValue; //深度值
private int strengthValue; //强度值
}
5.6. 设置动态限幅
仅RCSPController支持接口方式
//获取RCSPController对象
RCSPController controller = RCSPController.getInstance();
//动态限幅参数,不能为空
DynamicLimiterParam param = null;
//执行设置动态限幅功能并等待结果回调
controller.setDynamicLimiterParameter(controller.getUsingDevice(), param, new OnRcspActionCallback<Boolean>() {
@Override
public void onSuccess(BluetoothDevice device, Boolean message) {
//成功回调
}
@Override
public void onError(BluetoothDevice device, BaseError error) {
//失败回调
//error - 错误信息
}
});
Warning
需要判断设备是否支持该功能(通过获取拓展参数, 是否有对应参数返回来确认)
Note
5.6.1. DynamicLimiterParam
动态限幅参数
public class DynamicLimiterParam {
private int value; //数值
}