- 1、本文档共15页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
关于android电话录音问题的详细分析
作者:老猫
一直以来都是在网络上看别人的文章,老老实实的做潜水员,今天一时兴起,写点东西,希望对大家有所帮助,不要再走同样的弯路。
本文是关于Android下录音问题的分析,网络上都说Android录音时记录下的语音信号都是混音器的信号。但是都没有给出详细说明为什么是这样。
我们知道Android下进行电话录音的代码很简单:
大致流程如下:
recorder = new MediaRecorder();
//这里mode可以设置为 VOICE_UPLINK|VOICE_DOWNLINK|VOICE_CALL
recorder.setAudioSource(mode);
recorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
recorder.setOutputFile(recFile.getAbsolutePath());
//准备录音
recorder.prepare();
//启动录音
recorder.start();
//停止录音
recorder.stop();
MediaRecorder.AudioSource中定义了以下常量可以用于recorder.setAudioSource
这里和电话录音相关的有3个常量
Voice_call 录制上行线路和下行线路
Voice_uplink 录制上行线路,应该是对方的语音
Voice_downlink 录制下行线路,应该是我方的语音
网络上关于java层如何调用native代码的介绍很多,这里只做简单介绍。JAVA中MediaRecorder的方法会掉用本地C++代码,这些代码编译后为libmedia.so,再通过进程间通信机制Binder和MediaServer通信,MediaServer收到请求后,把这些请求转发给opencore。
以下是Android的媒体库框架图,从网络上下载的。
从上图可以看出,客户端调用的本地代码位于libmedia.so中,媒体服务进程调用的代码位于libmediaplayerservice.so中。libmediaplayerservice.so再调用底层的libopencoreplayer.so完成具体功能。
以下通过代码介绍媒体服务进程如何转发请求到opencore中。关于客户端mediarecorder如何与媒体服务进程交互请有哪些信誉好的足球投注网站网络,这方面文章很多,这里就不多介绍。
总而言之,客户端的一个mediarecorder对象和服务器端的MediaRecorderClient对象对应,客户端通过mediarecorder发送的请求,通过进程间通信机制最终都会发送到服务端的MediaRecorderClient类中。我们来看下内部类client的声明,代码位于frameworks\base\media\libmediaplayerservice\MediaRecorderClient.h
class MediaRecorderClient : public BnMediaRecorder
{
public:
virtual status_t setCamera(const spICamera camera);
virtual status_t setPreviewSurface(const spISurface surface);
virtual status_t setVideoSource(int vs);
virtual status_t setAudioSource(int as);
virtual status_t setOutputFormat(int of);
virtual status_t setVideoEncoder(int ve);
virtual status_t setAudioEncoder(int ae);
virtual status_t setOutputFile(const char* path);
virtual status_t setOutputFile(int fd, int64_t offset, int64_t length);
virtual status_t
您可能关注的文档
- 骨科疾病一般护理常规 PPT.ppt
- 骨折病历模板.DOC
- 骨质疏松宣传资料.docx
- 故事性广告:高效传播的利器.doc
- 挂面产业化发展与前景分析1.doc
- 关节型机器人腕部结构设计.doc
- 关于“城边村”经济社会发展问题的.doc
- 关于PKPM设计信息中勾选“框架梁端配筋考考虑受压钢筋”.doc
- 关于城市公园商业化现象的观察与反思.docx
- 关于大面积种植甜叶菊的可行性报告.doc
- 艺术市场规范化与文化艺术的可持续发展研究教学研究课题报告.docx
- 小学英语听说教学风格评价与数字化教学适配策略分析教学研究课题报告.docx
- 《心血管内科药物治疗监护中临床药师对特殊人群用药的个性化指导》教学研究课题报告.docx
- 探索区块链在高中人工智能教育平台数据存储与共享机制中的应用研究教学研究课题报告.docx
- 3 《农业废弃物厌氧发酵产沼气过程中的微生物多样性及其对产气的影响研究》教学研究课题报告.docx
- 初中语文比较阅读教学中的文学素养与审美能力培养策略教学研究课题报告.docx
- 《餐饮企业服务创新与顾客忠诚度的动态影响研究:以服务体验为中介》教学研究课题报告.docx
- 数字化教学背景下小学体育教师教学画像构建与智能算法分析教学研究课题报告.docx
- 高中英语教师数字化教学画像构建与英语教学效果评价研究教学研究课题报告.docx
- 高中数学抽象思维培养的跨学科知识整合与教学创新策略教学研究课题报告.docx
最近下载
- 2024年高级卫生专业技术资格考试(正高级)试卷及解答参考.docx VIP
- 留学生汉语口语自我效能感的研究.pdf VIP
- 高级卫生专业技术资格考试(正高级)试卷及解答参考.docx VIP
- 高级卫生专业技术资格考试(正高级)试卷及解答参考.docx VIP
- 高级卫生专业技术资格考试(正高级)试卷及解答参考.docx VIP
- 掼蛋比赛活动策划方案.pptx
- 年处理10万吨苯-氯苯筛板精馏塔设计说明书2024.12.17.docx VIP
- 《中国近代史纲要选择题集锦(全)》.doc VIP
- HG-T 2517-2009 工业磷酸三钠.pdf VIP
- 《中国近现代史纲要(2023版)》课后习题答案汇编.doc VIP
文档评论(0)