耳返功能sdk适配说明更新时间: 2024-11-12 14:58:00

一、耳返功能sdk简介

小米平台提供系统耳返功能,使用户可以在手机上有低延时的优质K歌体验。 诚邀应用开发者适配,感谢支持!

支持耳返功能的设备:

itgsa接口小米12S, 小米12S Pro,小米12S Ultra和其他出厂系统为Android 13版本的高通平台机型

二、sdk接入方法

1、权限说明

  • 所需安卓权限:

android.permission.MODIFY_AUDIO_SETTINGS

android.permission.RECORD_AUDIO

  • 所需小米权限:

APP可以通过isDeviceSupportKaraoke 接口判断机型是否支持系统耳返,通过isAppSupportKaraoke判断小米是否支持该应用使用耳返。

APP申请支持使用耳返(使isAppSupportKaraoke返回false),请联系小米研发(邮箱见文末)。邮件说明应用包名、应用简介和业务运营主体。请注意仅安卓13及以上版本支持在线更新应用权限,其他版本小米机型的应用权限更新不保证时效。

2、API使用说明

1)导入依赖,获取工具类

小米12S, 小米12S pro,小米12S Ultra和其他出厂版本为T版本高通机型 获取MediaClient单例, 其他高通机型获取KaraokeMediaHelper单例。导入依赖方式见2.4和2.5节。

2)判断系统是否支持应用使用KTV接口

调用isDeviceSupportKaraoke 接口判断机型是否支持系统耳返;调用isAppSupportKaraoke判断小米是否支持该应用使用耳返。

若app申请支持KTV功能,请联系小米研发(邮箱见文末)。邮件说明应用包名、应用简介和业务运营主体。

3)打开KTV通路

调用openKTVDevice

4)设置耳返相关参数

setMixerSoundType 混响音效类型

setEqualizerType EQ音效类型

setPlayFeedbackParam 耳返开关

setMicVolParam 耳返音量大小

5)播放和录音

先创建播放线程,再创建录音线程。

请注意部分机型仅支持deep buffer模式,部分机型支持多种模式,音频线程参数可从getKaraokeSupportParameters接口获取,详情见下一节播放和录音参数

6) 调整耳返参数

在使用耳返过程中,可通过耳返参数设置接口调整混响音效(setMixerSoundType )、EQ音效(setEqualizerType )、耳返音量大小(setMicVolParam),且可以切换耳返状态(setPlayFeedbackParam )

7)结束使用耳返

先关闭播放、录音线程,再调用closeKTVDevice关闭KTV系统。

3、录音和播放参数

部分机型仅支持deep buffer模式录音使用耳返,部分机型支持多种录音模式。是否支持低延时录音模式使用耳返,可从getKaraokeSupportParameters接口获取。

getKaraokeSupportParameters的返回值,JSON字符串和字段举例如下:

 { 
"audioTrackParam":[
{
"streamType":"3", // 播放线程要求streamType = 3
"sampleRate":"default", // 采样率任意
"format":"default", // format 任意
"flag":"8" // 播放模式要求,"8" 支持 deep buffer,不同机型返回值不同,后文具体说明
}
],
"audioRecordParam":[
{
"streamType":"3", // 录音线程要求streamType = 3
"sampleRate":"default", // 采样率任意
"format":"default", // format任意
"flag":"8", // 播放模式要求 deep buffer,不同机型返回值不同,后文具体说明
"source":"1" // 录音source 要求是mic
}
],
"isSupportListenRecordSame":false, // 不支持setListenRecordSame接口
"isSupportExtSpeakerParam":false, // 不支持setExtSpeakerParam接口
"isSupportMixerSoundType":true, // 支持混淆音效设置 setMixerSoundType
"isSupportEqualizerType":true, // 支持EQ音效设置 setEqualizerType
"isSupportToneMode":false, // 不支持调音接口 setToneMode
"isSupportAppSupoort":true // 支持判断是否支持APP使用接口 isAppSupportKaraoke
"getSupportLEAKaraoke":1|2|4|8 // 支持判断是否支持LEA蓝牙耳机耳返
getSupportLEAKaraoke
}
  • 支持低延迟录音模式的返回值

当audioRecordParam的flag字段返回 "AUDIO_INPUT_FLAG_NONE|AUDIO_INPUT_FLAG_FAST|AUDIO_INPUT_FLAG_RAW|AUDIO_INPUT_FLAG_MMAP_NOIRQ"时,说明当前版本支持普通录音和低延时录音(deep buffer和low latency模式)使用耳返。

{ 
"audioTrackParam":[
{
"streamType":"3",
"sampleRate":"default",
"format":"default",
"flag":"AUDIO_OUTPUT_FLAG_DEEP_BUFFER|AUDIO_OUTPUT_FLAG_FAST|AUDIO_OUTPUT_FLAG_RAW|AUDIO_OUTPUT_FLAG_MMAP_NOIRQ" // 支持deep buffer和 low latency模式
}
],
"audioRecordParam":[
{
"streamType":"3",
"sampleRate":"default",
"format":"default",
"flag":"AUDIO_INPUT_FLAG_NONE|AUDIO_INPUT_FLAG_FAST|AUDIO_INPUT_FLAG_RAW|AUDIO_INPUT_FLAG_MMAP_NOIRQ", // 支持deep buffer和 low latency模式
"source":"1"
}
],
……
}
  • 仅支持普通录音的返回值

当audioRecordParam的 flag 字段返回 “8” 时,仅支持deep buffer录音模式使用耳返。

 "audioTrackParam":[ 
{
"streamType":"3", // 播放线程要求streamType = 3
"sampleRate":"default", // 采样率任意
"format":"default", // format 任意
"flag":"8" // 播放模式要求,"8" 支持 deep buffer
}
],
"audioRecordParam":[
{
"streamType":"3", // 录音线程要求streamType = 3
"sampleRate":"default", // 采样率任意
"format":"default", // format任意
"flag":"default", // 播放模式任意
"source":"1" // 录音source 要求是mic
}
],
  • 支持LEA耳机耳返的返回值

基于LEA延迟低的特性,开放了LEA耳机耳返的功能,可以通过getKaraokeSupportParameters来获取当前手机对于lea耳返的支持情况:返回值为整数1|2|4|8的掩码组合。

当前耳机支持lea:+1   
当前手机适配了lea手机ADSP耳返:+2
当前耳机支持耳机内耳返:+4
当前手机适配了lea耳机内耳返:+8

4、 ITGSA接口详情

  • 支持机型:

小米12S、小米12S pro、小米12S Ultra和其他出厂版本为T 版本的高通机型

  • 应用申请使用权限:

应用申请支持KTV功能,请联系小米研发(邮箱见文末)。邮件说明应用包名、应用简介和业务运营主体。

  • 导入依赖:

implementation 'gsai.sdk:audio-client:1.0.0'

  • 接口说明

详情请参考 DEMO

接入实例参考 com.example.mediademo

函数名称 功能简介
initialize 初始化并获取KTV MediaClient单例。
getVersion 获取KTV SDK库版本号。
isDeviceSupportKaraoke 判断当前机器设备能否支持KTV。
isAppSupportKaraoke
判断应用是否支持KTV。补充说明: 若app申请支持KTV功能,请联系小米研发(邮箱见文末)。邮件说明应用包名、应用简介和业务运营主体。仅安卓13及以上版本支持在线更新应用权限 。
isSupported 应用是否支持KTV功能使用,注意此为前三个接口组合判断结果,通常来说三方只使用该接口判断是否支持。
getKaraokeSupportParameters 应用获取当前机器支持KTV的JSON参数信息,比如应用设置何种参数(AudioTrack的采样率、flag等,AudioRecord的source等),不满足参数要求无法使用耳返。具体说明参考2.3节。
openKTVDevice 打开KTV设备,此动作必须发生在播放线程开始前。
closeKTVDevice 关闭KTV设备。
setPlayFeedbackParam 控制耳返开启/关闭接口,系统默认打开。
建议APP每次使用耳返时,根据自身要求调用一次,排除其他app不正确调用的干扰。
getPlayFeedbackParam 获取当前耳返开关状态。
setMicVolParam 设置人声音量大小。
getMicVolParam 获取当前人声音量值。
setMixerSoundType 设置混响效果。 ( 0:无、1:KTV、2:剧场、3:音乐厅、4:录音棚 )
setEqualizerType 设置EQ均衡器音效。 (0:无、1:标准、2:浑厚、3:清脆、4:明亮)
getExtMixerSoundType 扩展混响音效。
getExtEqualizerType 扩展EQ音效音效。

  • 支持机型:

小米大部分高通机型,具体以isDeviceSupportKaraoke为准

  • 应用申请使用权限:

应用申请支持KTV功能,请联系小米研发(邮箱见文末)。邮件说明应用包名、应用简介和业务运营主体。

不支持ITGSA接口的机型,更新应用使用权限的时间可能较长,无法保证时效。

  • 导入依赖:

导入jar包 KaraokeMediaHelper.jar

名称:KaraokeMediaHelper.jar

地址:https://kpan.mioffice.cn/webfolder/ext/dSD7ZsuTo3k%40?n=0.21808963641056223

密码:Cqm0

接入实例 com.miui.media.KaraokeMediaHelper

函数名称 功能简介
KaraokeMediaHelper 初始化KTV工具类
isDeviceSupportKaraoke 判断当前机器设备能否支持KTV。
isAppSupportKaraoke
判断应用是否支持KTV。补充说明: 若app申请支持KTV功能,请联系小米研发(邮箱见文末)。邮件说明应用包名、应用简介和业务运营主体。仅安卓13及以上版本支持在线更新应用权限 。
getKaraokeSupportParameters
应用获取当前机器支持KTV的JSON参数信息,比如应用设置何种参数(AudioTrack的采样率、flag等,AudioRecord的source等),不满足参数要求无法使用耳返。具体说明参考2.3节。
openKTVDevice 打开KTV设备,此动作必须发生在播放线程开始前。
closeKTVDevice 关闭KTV设备。
setMixerSoundType 设置混响效果。( 0:无、1:KTV、2:剧场、3:音乐厅)
setPlayFeedbackParam 控制耳返开启/关闭接口,系统默认打开。
建议APP每次使用耳返时,根据自身要求调用一次,排除其他app不正确调用的干扰。
setMicVolParam 设置人声音量大小。
getPlayFeedbackParam
获取当前耳返开关状态。
getMicVolParam 获取当前人声音量值。
setEqualizerType 设置EQ均衡器音效。(0:无、1:标准、2:浑厚)
getExtMixerSoundType 扩展混响音效类型。
getExtEqualizerType 扩展EQ音效类型。

三、联系我们

技术支持:qinchao1@xiaomi.com;zhangliujun@xiaomi.com;zhaozhongxi@xiaomi.com

文档内容是否有帮助?
有帮助
无帮助