博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android音频采集
阅读量:6893 次
发布时间:2019-06-27

本文共 939 字,大约阅读时间需要 3 分钟。

1:创建一个AudioRecord类

AudioRecord *mpAudioRecord=new AudioRecord();

2:设置采集参数

       2.2版本:

        mpAudioRecord->set(AUDIO_SOURCE_DEFAULT, 0, 0,

AudioSystem::CHANNEL_IN_MONO, 0, 0,  AudioRecordCallback, this,  0,0);

      2.3版本:(多了一个参数)

       mpAudioRecord->set(AUDIO_SOURCE_DEFAULT, 0, 0,

AudioSystem::CHANNEL_IN_MONO, 0, 0,  AudioRecordCallback, this,  0,0,0);

 

3:检查设置是否成功:

       if (mpAudioRecord->initCheck() != NO_ERROR)
         

return -1;  //error!

 

4:启动采集:

      

mpAudioRecord->start();

 

5:采集回调函数的定义:

 

void Caudioplayer::AudioRecordCallback(int event, void* user, void *info)

{
        if (event != AudioTrack::EVENT_MORE_DATA)
                 return;
        Caudioplayer *audioplayer=static_cast<Caudioplayer*>(user);
        AudioTrack::Buffer *buffer = static_cast<AudioTrack::Buffer *>(info);
        short *lpOut = buffer->i16;
        Mutex::Autolock lock(audioplayer->mLock);
        copy_size=4096>buffer->size?buffer->size:4096;
        memcpy(tembuffer,lpOut,copy_size);
}

本文转自 fanxiaojun 51CTO博客,原文链接:http://blog.51cto.com/2343338/998112,如需转载请自行联系原作者

你可能感兴趣的文章
技术大咖云集,GIAC 2017全球互联网架构大会圆满落幕
查看>>
php取整函数ceil,floor,round,intval函数的区别
查看>>
安卓应用安全指南 4.2.2 创建/使用广播接收器 规则书
查看>>
Stratus Technologies与海得控制升级长期战略合作,助力中国工业自动化与工业物联网解决方案...
查看>>
新建的SQL Server账号无法使用跟踪功能
查看>>
远程线程注入引出的问题
查看>>
「镁客·请讲」NXROBO林天麟:我们分三步走,首先要做的就是打通机器人行业的产业链...
查看>>
这款创意相机,能让盲人更真实的感触身边世界
查看>>
hdu 1285 确定比赛名次(很典型的拓扑排序)
查看>>
学习iOS【3】数组、词典和集合
查看>>
8Python全栈之路系列之Django Cookie 与Sessi
查看>>
nginx反向代理配置
查看>>
DecimalFormat用法
查看>>
流程DEMO-出差申请单
查看>>
sublime安装package control及常用插件
查看>>
vi/vim使用进阶: 指随意动,移动如飞 (一)
查看>>
zabbix3.2 snmp 监控交换机流量
查看>>
webkit 渲染机制
查看>>
unix系统安装及应用
查看>>
数据库连接学习--简单的通讯录
查看>>