前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android TRTC推自定义采集的音频数据

Android TRTC推自定义采集的音频数据

原创
作者头像
腾讯云-chaoli
发布2019-07-07 19:35:12
2.1K2
发布2019-07-07 19:35:12
举报

场景

如果你的业务场景对声音有特殊要求,需要开发者对声音做一些定制化处理;目前TRTC SDK提供发送自定义采集音频数据的接口,开发者可以自定采集音频数据,然后复用 trtc的编码功能,目前6.3.7版本sdk只支持48000采样率的单声道pcm数据,后续会发版支持更多的音频,可以留意一下我们官网的sdk更新;

示例一

AudioRecord 采集

1、需要根据配置参数,然后使用 AudioRecord 音频数据。

2、AudioRecord 采集到的音频数据不会回调给开发者,开发者需要启动一个线程每隔一段时间去读取音频数据。

代码语言:javascript
复制
private class AudioCaptureRunnable implements Runnable {
    @Override
    public void run() {
        while (!mIsLoopExit) {

            // 直接设置为 buffer size = 2048
            mMinBufferSize
            byte[] buffer = new byte[mMinBufferSize];

            int ret = mAudioRecord.read(buffer, 0, mMinBufferSize);

            if (ret == AudioRecord.ERROR_INVALID_OPERATION) {
                Log.e(TAG , "AudioRecord Error ERROR_INVALID_OPERATION");
            }
            else if (ret == AudioRecord.ERROR_BAD_VALUE) {
                Log.e(TAG , "AudioRecord Error ERROR_BAD_VALUE");
            }
            else {
                if (isPush) {
                    mLivePusher.sendCustomPCMData(buffer);
                }
            }
            SystemClock.sleep(10);
        }
    }
}
  • 用demo源码测试如图,在加入房间的时候打开自定义采集音频enableCustomAudioCapture,这边做了个简单的AudioRecord采集工具,直接调用;
  • startLocalAudio 开启本地音频流,并不指打开本地麦克风采集上传音频数据,当自定义音频采集开启时,sdk不打开麦克风采集,只是将声音数据上行,将音频数据广播给房间里的其他用户;

示例二

推采集好的pcm音频文件

1、注意文件需要是48000采样率的单声道pcm文件;

2、将pcm文件放在assets目录下,并调用

3、需要做一个定时器,定时往sdk塞音频数据,定时器间隔=(字节数 / 2 / 声道数) 1000 / 采样率 例如单声道,48K,(2048/2/1)1000/48000=21

  • 注意,并不是做一个定时器无脑的给sdk塞音频数据,frame.timestampMs时间戳是做音视频对齐,如需对音频要求严谨,可以动态修正定时器时间,2次定时器的调用对比一下时间是否满足音频所需间隔时间;

完整的实例代码下载地址:建议将代码复制到腾讯云开发者demo中

方案原理

接口说明

void sendCustomAudioData(TRTCAudioFrame frame)

该接口是向 SDK 塞入您自定义采集和处理后的音频数据,请使用单声道的48000 PCM 声音数据。目前还不支持其他数据类型,后续会支持更多的音频采集类型;

  • TRTCAudioFrame参数说明

参数

类型

说明

data

byte[]

pcm 音频数据

sampleRate

int

音频采样率

channel

int

音频声道数

timestamp

long

音频时间戳

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 场景
  • 示例一
    • AudioRecord 采集
    • 示例二
      • 推采集好的pcm音频文件
      • 方案原理
        • 接口说明
        相关产品与服务
        实时音视频
        实时音视频(Tencent RTC)基于腾讯21年来在网络与音视频技术上的深度积累,以多人音视频通话和低延时互动直播两大场景化方案,通过腾讯云服务向开发者开放,致力于帮助开发者快速搭建低成本、低延时、高品质的音视频互动解决方案。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档