跳过导航链接
1.

请参阅: 说明

程序包 
程序包 说明
com.yunos.tv.karaoke
包含TMKaraoke的控制,AudioTrack等功能。
com.yunos.tv.karaoke.player
包含SDK内提供的播放器,现在版本的播放器已经随Demo代码呈现。

1. 简介

TMKaraokeSDK 是一个为了解决在android平台上在卡拉OK的情境下一系列问题 的SDK。

此SDK的文档分为两部分:

由于主要的接口都在 Java SDK 的文档中, 所以首先阅读 Java SDK 的文档. 在通过参照文档与 demo 以后, 了解初始化的过程. Native 文档主要的功能在于得到实时得到录音数据, 可以做一些打分之类的操作.

这个 SDK 主要的目的是降低在从麦克风录音到播放之间的延时, 并且加上卡拉 OK 人声所需要的人声特效.

2. API简介

SDK支持两种使用模式:

3. 主要的类

4. Demo的使用方法

现在提供一个demo 的apk, 这个apk的是播放一个mp3的伴奏,并且在播放伴奏的时候控制混音的音效。 里面提供一个KPlayer的类, 该类是一个演示性的播放器, 来掩饰如果使用AudioTrackNative来播放伴奏。

使用之前

  1. 关闭按键音

    在魔盒中关闭按键音, 关闭方法: 系统设置->声音与图像->声音设置->关闭

  2. 准备好MP3

    在播放之前,要执行 adb push example_48000.mp3 /sdcard/music_48.mp3 来把音乐文件准备好。

  3. 插入USB麦克风

    然后插好一个USB麦克, 关于支持的USB麦克, 在支持设备的部分有介绍。

  4. Demo

    在Demo中点击“Start”

5. 麦克风设备支持

总体来说,SDK支持USB麦克风, 但是现有版本对于USB麦克风的比特率有一些要求。

版本 采样率(Sample Rate) 声道 格式
1.1.0 16000-48000 1(48000的支持2声道) 16bit
在1.1.0开始, 支持16k - 48k 单声道的麦克风; 如果是48k的输入,也支持双声道。 对于不支持48k输入的设备,只支持单声道的输入。 #6 .AudioTrackNative对于PCM的要求# 在第一个版本中, AudioTrackNative对于PCM的格式支持如下表
版本 采样率(Sample Rate) 声道 格式
1.1.048000 only1-216bit

在1.1.0里面一个重要的改变就是AudioTrackNative由44.1k的输入支持变成了48k的输入支持, 因为底层的设备现在是使用48k的采样率。 AudioTrack里面不会做resample, 所以如果播放44.1的,会出现频率听起来不对的情况。 建议先在应用层做resample.

7. 安装

主要是要把java的sdk和对应的native库放在正确的位置

  1. 把 libDirectAudio.so 放到 libs/armeabi-v7a/libDirectAudio.so
  2. TMKaraokeSDK*.jar 放到 libs/

8. 权限

需要在应用的manifest里面申明 <uses-permission android:name="com.aliyun.permission.PCM_ACCESS"/><uses-permission android:name="android.permission.WRITE_SETTINGS"/>.

9. 注意事项

因为功能实现的限制, 卡拉 ok 的 audio 就和系统 audio Flinger 的音频有冲突. 在开始启动 reverb,也就是卡拉 ok 的时候, 如果同时使用 audio Flinger 的 AudioTrack 播放声音, 会出现 reverb 暂时暂停, 退让让 audioFlinger 播放完成. 所以尽量在启动过程中, 避免使用 audioEffect, MediaPlayer 之类的系统自带的 audio 播放和录制.

在魔盒中, 也需要关闭按键音, 关闭方法: 系统设置->声音与图像->声音设置->关闭

10. 版本历史

1.0.0

1.1.0

1.2.0

1.2.1

1.4.0

1.5.0

1.6.0

1.7.0

1.8.0

1.8.1

11. 技术支持

跳过导航链接