Commit 46974502 authored by qiujianhui's avatar qiujianhui

create gsai audio demo

parent e35ab466
AudioDemo # 1、介绍
\ No newline at end of file
## 概述
本文档介绍了KTV系统的功能以及接口的调用,统一开放三方接口API,能够在oppo、vivo、小米的安卓13.0手机上体验震撼的K歌体验。
KTV系统能满足统一开放API在Android 13.0机器上K歌实现几乎无延时耳返(Mic数字信号直接输入IC,接着直接输出至耳机,(vivo)实验室测试值35ms);搭载多种默认经典混响和EQ均衡器音效,以及各个厂家可额外扩展的音效。
不同手机厂商支持的音效类型:【红色标记为额外扩展的音效】
| 手机 | 混响音效 | EQ均衡器音效 |
| ---- | ------------------------------------------------------------ | ------------------------------------------------------------ |
| oppo | 0:无、1:KTV、2:剧场、3:音乐厅、4:录音棚 | 0:无、1:标准、2:浑厚、3:清脆、4:明亮 |
| vivo | 0:无、1:KTV、2:剧场、3:音乐厅、4:录音棚10: 温暖、11: 空灵、12: 3D迷幻、13: 老唱片 | 0:无、1:标准、2:浑厚、3:清脆、4:明亮10: 温暖、11: 空灵、12: 3D迷幻、13: KTV |
| 小米 | 0:无、1:KTV、2:剧场、3:音乐厅、4:录音棚 | 0:无、1:标准、2:浑厚、3:清脆、4:明亮 |
另外手机KTV提供非常小的接口库,调用简单,可使三方app快捷使用到卡拉OK效果。
如需在安卓13之前老版本集成该功能,请联系各个厂家提供方提供KTV旧方案,旧方案此前均有开放出来。
## 名词和缩写
- KTV
Karaoke Television(卡拉ok)
- OPPO
本文指代OPPO、OnePlus或realme手机设备
## 文档说明
本文档介绍了怎样使用KTV SDK进行应用程序开发,并给出了完整的例程。
本文是针对具有一些安卓编程经验的安卓应用程序员而写的。以下是文档中的一些约定符号:
| | |
| ---------- | -------------------------------------------------- |
| **符号** | **含义** |
| \[in\] | 表明该参数是调用时赋值的参数:输入参数 |
| \[out\] | 该参数在函数返回时被赋值:输出参数 |
| \[in/out\] | 该参数在函数调用时作为输入、函数返回时作为输出参数 |
OPPO平台接入前需要进行鉴权,详情见第4部分OPPO平台鉴权。
1. # 接口说明
1. ## 接口简介
1. ### 接口函数列表
MediaClient客户端类API提供如下函数供调用:
| 函数名称 | 功能简介 |
| --------------------------- | ------------------------------------------------------------ |
| initialize | 初始化并获取KTV MediaClient单例。 |
| getVersion | 获取KTV SDK库版本号。 |
| isDeviceSupportKaraoke | 判断当前机器设备能否支持KTV。 |
| isAppSupportKaraoke | 应用是否支持KTV。【oppo、vivo返回默认值true,小米手机检测】补充说明:小米平台通过应用白名单控制是否支持app使用KTV功能。 若app申请支持KTV功能,请联系小米三方应用外部支持(mi-support-thirdapps@xiaomi.com)。 |
| isSupported | 应用是否支持KTV功能使用,注意此为前三个接口组合判断结果,通常来说三方只使用该接口判断是否支持。 |
| getKaraokeSupportParameters | 应用获取当前机器支持KTV的JSON参数信息,比如应用设置何种参数(AudioTrack的采样率、flag等,AudioRecord的source等),判断是否可以正常使用KTV功能。 |
| openKTVDevice | 打开KTV设备,此动作必须是刚发生在播放伴奏前。 |
| closeKTVDevice | 关闭KTV设备。 |
| setPlayFeedbackParam | 控制耳返开启/关闭接口,系统默认打开,建议无论怎么app调用都打开调用一次,排除其他app不正确调用的干扰。 |
| getPlayFeedbackParam | 获取当前耳返开关状态。 |
| setListenRecordSame | 听录一致,选择录音输出数据,建议接口调用动作应发生在openKTVDevice后与录音前。【小米不支持此功能】 |
| getListenRecordSame | 听录一致,获取当前音源的输出方式值。【仅vivo支持此功能】 |
| setMicVolParam | 设置人声音量大小。 |
| getMicVolParam | 获取当前人声音量值。 |
| setExtSpeakerParam | 控制外接音响设备开关,这个接口的开出是为了当用户使用大音响或者大功放设备K歌,此情景下啸叫厉害,故开了此接口。【仅vivo支持此功能】 |
| getExtSpeakerParam | 获取当前外接音响设备开关状态。【仅vivo支持此功能】 |
| setToneMode | 设置变声。【仅oppo支持此功能】 |
| setMixerSoundType | 设置混响效果。 |
| setEqualizerType | 设置EQ均衡器音效。 |
| getExtMixerSoundType | 扩展混响音效。 |
| getExtEqualizerType | 扩展EQ均衡器音效。 |
MediaClientUtil客户端辅助类API提供如下函数供调用:
| 函数名称 | 功能简介 |
| ---------------------- | ------------------------------------------------------------ |
| isOsVivo | 是否为vivo手机设备 |
| isOsOppo | 是否为OPPO手机设备 |
| isOsXiaoMi | 是否为小米手机设备 |
| isKtvNewApiSupported | 应用是否支持KTV新架构API功能使用,和直接调用MediaClient的【isSupported】结果一致 |
| isTargetAudioSupported | 目标客户端AudioRecord或AudioTrack的参数是否能够使用KTV新API功能 |
KtvSupportInfo客户端辅助类API,该类信息是从【getKaraokeSupportParameters】的JSON数据解析而来,表示当前机器支持KTV AudioTrack和AudioRecord的JSON参数信息,该类目前不直接提供功能函数给三方使用,只是用于辅助判断目标客户端AudioRecord或AudioTrack的参数是否能够使用KTV新API相关功能。
### 开发包组件
- Android平台
| 开发组件 | 组件组成 | 说明 |
| --------- | :----------------------------------------------------------- | ------------------------------------------------------------ |
| 开放API类 | MediaClient.javaMediaClientUtil.javaKtvSupportInfo.java | 接口类声明 |
| 运行时库 | gsai.sdk:media-client:1.0.0-SNAPSHOTgsai.sdk:mediastub:1.0.0-SNAPSHOT | SDK依赖 补充:1、添加 URL地址和版本1.0.0根据release最新版本修改2、如何依赖库代码片段请查看第4部分内容 |
### 开发包支持情况
| 系统 | 支持的安卓版本号 | 备注 |
| ------- | ---------------- | ------------------------------------------------------------ |
| Android | 13.0 | 小米平台支持:小米12S、小米12S Pro、小米12S Ultra和Android T以上版本的高通平台机型 |
1. ## 函数调用
1. ### initialize
- 函数原型
public static MediaClient initialize(Context context)
- 功能
进程级的初始化操作,初始化并获取KTV MediaClient单例用于功能API调用。
- 参数 
- context \[in\]
上下文,必现非空,建议传入全局Context,如使用getApplicationContext()。
- 返回值
静态函数调用,返回KTV MediaClient单例:
| 返回值 | 意义 |
| --------------- | -------------- |
| MediaClient单例 | 函数执行成功。 |
- 说明
初始化单例函数必须在调用其他函数之前调用,可多线程调用。
- 示例
MediaClient mc = MediaClient.initialize(getApplicationContext());
- 参见
### getVersion
- 函数原型
public int getVersion()
- 功能
获取KTV SDK库版本号。
- 参数
无。
- 返回值
如果函数调用成功返回大于或等于10000,表示KTV API版本可用,否则返回-1,可能的值如下:
| 返回值 | 意义 |
| ------ | -------------------------------------------- |
| 10000 | 返回值大于或等于10000,表示KTV API版本可用。 |
| -1 | 该KTV API版本不可用 |
- 说明
使用该返回值判断KTV API版本是否可用。
- 示例
// KTV sdk版本号
int version = mMediaClient.getVersion();
Log.d(TAG, "version is: " + version);
//不支持的版本,三方可选择自行适配(部分接口如果后续进行了拓展需要)
if (version \< 10000) {
//其他替代方案或界面提示
Log.d(TAG, "KTV version is not supported");
return;
} else {
Log.d(TAG, " KTV version is supported");
}
- 参见
isSupported
### isDeviceSupportKaraoke
- 函数原型
public boolean isDeviceSupportKaraoke()
- 功能
判断当前机器设备能否支持KTV。
- 参数
无。
- 返回值
可能的值如下:
| 返回值 | 意义 |
| ------ | ------ |
| true | 支持 |
| false | 不支持 |
- 说明
使用该返回值判断当前机器设备能否支持KTV。
- 示例
// 判断当前机器设备能否支持KTV
boolean isSupportedForDevice = mMediaClient.isDeviceSupportKaraoke();
if (isSupportedForDevice) {
Log.d(TAG, "KTV is supported for current device");
} else {
Log.d(TAG, "KTV is not supported for current device");
return;
}
- 参见
isSupported
### isAppSupportKaraoke
- 函数原型
public boolean isAppSupportKaraoke(String appName)
- 功能
应用是否支持KTV。【小米手机检测,OV返回默认值true】
补充说明:小米平台通过应用白名单控制是否支持app使用KTV功能。 若app申请支持KTV功能,请联系小米三方应用外部支持(mi-support-thirdapps@xiaomi.com)。
- 参数&nbsp;
- appName \[in\]
APP包名,非空。
- 返回值
可能的值如下:
| 返回值 | 意义 |
| ------ | ------ |
| true | 支持 |
| false | 不支持 |
- 说明
使用该返回值判断应用是否支持KTV。
- 示例
// 判断KTV是否支持当前APP
boolean isSupportedForApp = mMediaClient.isAppSupportKaraoke(getApplicationContext().getPackageName());
if (isSupportedForApp) {
Log.d(TAG, "KTV is supported for current APP");
} else {
Log.d(TAG, "KTV is not supported for current device");
return;
}
- 参见
isSupported
### isSupported
- 函数原型
public boolean isSupported()
- 功能
应用是否支持KTV功能使用,注意此为前三个接口【getVersion】、【isDeviceSupportKaraoke】、【isAppSupportKaraoke】组合判断结果,因此通常来说三方只使用该接口判断是否支持。
- 参数
- 返回值
可能的值如下:
| 返回值 | 意义 |
| ------ | ------ |
| true | 支持 |
| false | 不支持 |
- 说明
使用该返回值判断应用是否支持KTV功能使用,即KTV整个环境是否可用。
- 示例
boolean isNewApiSupported = client.isSupported();
if (DEBUG) {
if (isNewApiSupported) {
Log.d(TAG, "KTV is supported for the new architecture of KTV APIs, you can use them");
} else {
Log.d(TAG, "KTV is not supported for the new architecture of KTV APIs, " +
"you CAN NOT use them");
}
}
- 参见
getVersion、isDeviceSupportKaraoke、isAppSupportKaraoke
### getKaraokeSupportParameters
- 函数原型
public String getKaraokeSupportParameters()
- 功能
应用获取当前机器支持KTV的JSON参数信息,比如应用设置何种参数(AudioTrack的采样率、flag等,AudioRecord的source等),判断是否可以正常使用KTV功能。
- 参数
- 返回值
可能的值如下:
| 返回值 | 意义 |
| ------------------------------------------------------------ | ------------------------------------------------------------ |
| { "audioTrackParam":[ { "streamType":"3", "sampleRate":"48000", "format":"2", "flag":"8" }], "audioRecordParam":[ { "streamType":"default", "sampleRate":"48000", "format":"2", "flag":"0x8", "source":"1" }], "isSupportListenRecordSame":false, "isSupportExtSpeakerParam":false, "isSupportToneMode":false} | 参数格式定义:1、若支持任意参数, value置为"default";2、没有返回的key, value为默认值"default";3、所有value给十进制数值的字符串形式, 例如AUDIO_SOURCE_MIC需要返回"1", AUDIO_OUTPUT_FLAG_DEEP_BUFFER需要返回"8"。若该手机厂商不支持某个接口API则将配置不支持false,例如不支持setToneMode接口则设置isSupportToneMode:false。4、***\*注意:只在此处声明不支持的接口,JSON参数中没有声明的接口都表示支持\**** |
| null | 空值,KTV API不支持使用。默认都不会为空值 |
- 说明
该返回值JSON信息表示当前机器支持KTV的JSON参数信息,比如应用设置目标参数(AudioTrack的采样率、flag等,AudioRecord的source等),判断是否可以正常使用KTV功能。
**注意:此JSON参数中只声明不支持的接口API,JSON参数中没有声明的接口都表示支持。**
- 示例
String ktvSupportInfoJson = mMediaClient.getKaraokeSupportParameters();
Log.d(TAG, "KTV ktvSupportInfoJson: " + ktvSupportInfoJson);
KtvSupportInfo supportInfo = new Gson().fromJson(ktvSupportInfoJson, KtvSupportInfo.class);
Log.d(TAG, "KTV isSupportListenRecordSame: " + supportInfo.isSupportListenRecordSame);
Log.d(TAG, "KTV isSupportExtSpeakerParam: " + supportInfo.isSupportExtSpeakerParam);
Log.d(TAG, "KTV isSupportToneMode: " + supportInfo.isSupportToneMode);
KtvSupportInfo.TrackSupportInfo targetTrackInfo =
new KtvSupportInfo.TrackSupportInfo("3", "48000", "2", "8");
Log.d(TAG, "KTV targetTrackInfo: " + targetTrackInfo.toString());
if (!MediaClientUtil.isTargetAudioSupported(supportInfo, targetTrackInfo)) {
return;
}
// track equals
KtvSupportInfo.RecordSupportInfo targetRecordInfo =
new KtvSupportInfo.RecordSupportInfo("default", "48000", "2", "8", "1");
Log.d(TAG, "KTV targetRecordInfo: " + targetRecordInfo.toString());
if (!MediaClientUtil.isTargetAudioSupported(supportInfo, targetRecordInfo)) {
return;
}
// record equals
// Anything you can do loudly with KTV
- 参见
### openKTVDevice
- 函数原型
public void openKTVDevice()
- 功能
打开KTV设备,此动作必须是刚发生在播放伴奏前。
- 参数
- 返回值
- 示例
略;
- 参见
closeKTVDevice
### closeKTVDevice
- 函数原型
public void closeKTVDevice()
- 功能
关闭KTV设备。
- 参数
- 返回值
- 示例
略;
- 参见
openKTVDevice
### setPlayFeedbackParam
- 函数原型
public void setPlayFeedbackParam(int param)
- 功能
控制耳返开启/关闭接口,系统默认打开,建议无论怎么app调用都打开调用一次,排除其他app不正确调用的干扰。
- 参数&nbsp;
- param \[in\]
> 设置当前耳返开关状态:0 关闭,1 开启
- 返回值
- 说明
控制耳反开关功能,在【openKTVDevice】前后调用均可。
小米仅支持在 openKTVDevice后调用 setPlayFeedbackParam, 否则设置不生效。
- 示例
- 参见
> getPlayFeedbackParam
- 函数原型
public int getPlayFeedbackParam()
- 功能
获取当前耳返开关状态。
- 参数
> 无
- 返回值
可能的值如下:
| 返回值 | 意义 |
| ------ | ---------------------- |
| 0 | 开关未打开 |
| 1 | 开关已打开 |
| -1 | 当前KTV该API接口不可用 |
- 说明
判断当前耳返开关状态
- 示例
- 参见
> setPlayFeedbackParam
### setListenRecordSame
- 函数原型
public void setListenRecordSame(int param)
- 功能
听录一致,选择录音输出数据,建议接口调用动作应发生在openKTVDevice后与录音前。【仅小米不支持此功能】
- 参数&nbsp;
- param \[In\]
传入参数为录音数据输出类型,类型为:【此功能不同手机厂商支持情况不同,如下】
| 手机厂商 | 类型 | 说明 |
| ---------- | ---- | ----------------------------------------------------------- |
| oppo、vivo | 0 | 录音输出为原始录音数据 |
| oppo | 1 | 录音输出为录音+应用playback数据,就是耳返数据(直播场景用) |
| vivo | 2 | 录音输出为经过算法音效后的录音数据 |
- 返回值
- 说明
该函数建议调用动作应发生在openKTVDevice后与录音前。
若设备不支持,则该API接口不可用。
若不支持则2.2.6中JSON支持参数中设置" isSupportListenRecordSame":false
- 示例
- 参见
> getListenRecordSame
### getListenRecordSame
- 函数原型
public int getListenRecordSame()
- 功能
听录一致,获取当前音源的输出方式值。【仅vivo支持此功能】
- 参数
- 返回值
听录一致,获取当前音源的输出方式值,可能的值如下:
【此功能不同手机厂商支持情况不同】
| 手机厂商 | 返回值 | 意义 |
| ---------- | ------ | ----------------------------------------------------------- |
| oppo、vivo | 0 | 录音输出为原始录音数据 |
| oppo | 1 | 录音输出为录音+应用playback数据,就是耳返数据(直播场景用) |
| vivo | 2 | 录音输出为经过算法音效后的录音数据 |
| oppo、vivo | -1 | 当前KTV该API接口不可用 |
- 说明
若设备不支持,则该API接口不可用
若不支持则2.2.6中JSON支持参数中设置" isSupportListenRecordSame":false
- 示例
- 参见
> setListenRecordSame
### setMicVolParam
- 函数原型
public void setMicVolParam(int param)
- 功能
设置人声音量大小。
- 参数&nbsp;
- param \[in\]
设置人声音量大小值范围:0\~15
- 返回值
- 说明
设置录音声音音量大小值。
- 示例
- 参见
getMicVolParam
### getMicVolParam
- 函数原型
public int getMicVolParam()
- 功能
获取当前人声音量值。
- 参数
- 返回值
可能的值如下:
| 返回值 | 意义 |
| ------ | ----------------------------------- |
| 0~15 | 获取当前设置的KTV录音声音音量大小值 |
| -1 | 当前KTV该API接口不可用 |
- 说明
获取当前设置的KTV录音声音音量大小值,范围:0\~15
- 示例
- 参见
setMicVolParam
### setExtSpeakerParam
- 函数原型
public void setExtSpeakerParam(int param)
- 功能
控制外接音响设备开关,这个接口的开出是为了当用户使用大音响或者大功放设备K歌,此情景下啸叫厉害,故开了此接口。【仅vivo支持此功能】
- 参数
&nbsp;
- param \[in\]
0:关 1:开
- 返回值
- 说明
控制外接音响设备开关状态:0:关 1:开。
若设备不支持,则该API接口不可用。
若不支持则2.2.6中JSON支持参数中设置"isSupportExtSpeakerParam":false
- 示例
- 参见
getExtSpeakerParam
### getExtSpeakerParam
- 函数原型
public int getExtSpeakerParam()
- 功能
获取当前外接音响设备开关状态。【仅vivo支持此功能】
- 参数
- 返回值
可能的值如下:
| 返回值 | 意义 |
| ------ | ---------------------- |
| 0 | 开 |
| 1 | 关 |
| -1 | 当前KTV该API接口不可用 |
- 说明
获取当前外接音响设备开关状态,若设备不支持,则该API接口不可用。
若不支持则2.2.6中JSON支持参数中设置"isSupportExtSpeakerParam":false
- 示例
- 参见
setExtSpeakerParam
### setToneMode
- 函数原型
public void setToneMode(int toneValue)
- 功能
设置变声类型。【仅OPPO支持此功能】
- 参数&nbsp;
- toneValue \[in\]
范围( -12 \~ 0 \~ 12 )
- 返回值
- 说明
设置变声类型,如果不支持则2.2.6中JSON支持参数中设置"isSupportToneMode":false
- 示例
- 参见
1. ### setMixerSoundType
- 函数原型
public void setMixerSoundType(int param)
- 功能
设置混响效果。
- 参数&nbsp;
- param \[in\]
混响音效效果类型:
1. Reverb default type ( 0:无、1:KTV、2:剧场、3:音乐厅、4:录音棚 )
2. For vivo extensions as bellow: 【vivo设备上额外提供更多的效果类型】
> 10: 温暖, 11: 空灵, 12: 3D迷幻, 13: 老唱片
- 返回值
- 说明
设置混响音效效果类型。
**除了默认混响效果0-4类型,vivo设备**上通过调用【getExtMixerSoundType】接口额外获取更多提供的可用效果类型:10: 温暖, 11: 空灵, 12: 3D迷幻, 13: 老唱片。
示例
- 参见
> getExtMixerSoundType
### getExtMixerSoundType
- 函数原型
public int\[\] getExtMixerSoundType()
- 功能
获取扩展混响音效类型ID数组。【可为空】
1. For VIVO extensions as bellow: 【vivo设备上额外提供更多的效果类型】
> 10: 温暖, 11: 空灵, 12: 3D迷幻, 13: 老唱片
- 参数
- 返回值
可能的值如下:
| 返回值 | 意义 |
| ------ | ---------------------------- |
| int[] | 扩展混响音效类型ID数组 |
| null | 空值,当前KTV该API接口不可用 |
- 说明
返回扩展混响音效类型ID数组。
**除了默认混响效果0-4类型,vivo设备上**通过调用该函数接口额外获取更多提供的可用效果类型:10: 温暖, 11: 空灵, 12: 3D迷幻, 13: 老唱片。
- 示例
- 参见
setMixerSoundType
### setEqualizerType
- 函数原型
public void setEqualizerType(int equalizerType)
- 功能
设置EQ均衡器音效类型。
- 参数&nbsp;
- equalizerType \[in\]
EQ均衡器音效效果类型:
3. EQ default type ( 0:无、1:标准、2:浑厚、3:清脆、4:明亮 )
4. For VIVO extensions as bellow: 【vivo设备上额外提供更多的效果类型】
> 10: 温暖, 11: 空灵, 12: 3D迷幻, 13: KTV
- 返回值
- 说明
设置EQ均衡器音效效果类型。
**除了默认EQ均衡器效果0-4类型,vivo设备**上通过调用【getExtEqualizerType】接口额外获取更多提供的可用效果类型:10: 温暖, 11: 空灵, 12: 3D迷幻, 13: KTV。
- 示例
- 参见
> getExtEqualizerType
### getExtEqualizerType
- 函数原型
public int\[\] getExtMixerSoundType()
- 功能
获取扩展EQ均衡器音效类型ID数组。【可为空】
2. For VIVO extensions as bellow: 【vivo设备上额外提供更多的效果类型】
> 10: 温暖, 11: 空灵, 12: 3D迷幻, 13: KTV
- 参数
- 返回值
可能的值如下:
| 返回值 | 意义 |
| ------ | ---------------------------- |
| int[] | 扩展EQ均衡器音效类型ID数组 |
| null | 空值,当前KTV该API接口不可用 |
- 说明
返回扩展EQ均衡器音效类型ID数组。
**除了默认EQ均衡器效果0-4类型,vivo设备上**通过调用该函数接口额外获取更多提供的可用效果类型:10: 温暖, 11: 空灵, 12: 3D迷幻, 13: KTV。
- 示例
- 参见
setEqualizerType
# 辅助类说明
由于MediaClientUtil和KtvSupportInfo辅助类功能简单,在第二部分的【接口函数列表】中基本已阐述,这里就不详细参数了,参考demo中实现使用即可。
# API使用说明
**1、基本使用流程(推荐流程,也可以根据自己的流程适配)**
1)获取MediaClient单例
2)isSupported判断应用是否支持KTV功能使用
3)演唱开始,先打开KTV系统,openKTVDevice
4)设置相关配置(vivo支持在openKTVDevice前设置)
setListenRecordSame 录音数据输出类型
setMixerSoundType 混响音效类型
setEqualizerType EQ音效类型
setPlayFeedbackParam 耳返开关
setMicVolParam 耳返音量大小
setExtSpeakerParam 设置外接设备项
5)再开启播放,最后开启录音 【小米仅支持deep buffer播放方式的KTV效果】
6)演唱结束,先关闭播放、录音
7)再closeKTVDevice 关闭KTV系统
8)该流程具体细节推荐参考Demo KTV中相关代码
**2、KTV统一接口API,可直接使用**
需要应用权限配置:
android.permission.MODIFY_AUDIO_SETTINGS
android.permission.RECORD_AUDIO
OPPO平台需要额外权限:
\<uses-permission android:name="com.oplus.ocs.permission.third"/\>
\<queries\>
> \<package android:name="com.coloros.karaoke"\>\</package\>
>
> \<package android:name="com.coloros.ocs.opencapabilityservice"\>\</package\>
>
> \<package android:name="com.oplus.ocs"\>\</package\>
\</queries\>
**3、OPPO 平台鉴权**
1)登录OPPO开放平台申请鉴权码,请参考[*官方指南*](https://open.oppomobile.com/new/developmentDoc/info?id=11152)
在应用的AndroidManifest.xml的配置如下标签,该标签和activity标签是同级别标签
\<meta-data
android:name="com.coloros.ocs.media.AUTH_CODE"
android:value="请替换为自身授权码" /\>
2. 在应用开启时注册耳返服务,设定悬浮球显示逻辑;通过 addOnOnConnectionSucceedListener 发起鉴权请求,可在鉴权成功的回调中使用openKTVDevice请求耳返服务。
如果鉴权没有成功,openKTVDevice调用没有效果。例如:
**4、Gradle如何依赖aar库**
示例:
implementation 'gsai.sdk:media-client:1.0.0-SNAPSHOT'
compileOnly 'gsai.sdk:mediastub:1.0.0-SNAPSHOT'
说明:此处为第一个版本示例,版本号1.0.0需根据release最新版本修改
版本更新说明
| 版本号 | 更新内容 |
| ------ | --------------- |
| 1.0.0 | KTV系统接口统一 |
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment