当前位置:首页 > 编程开发

Android录音失真具体解决方案

webgou16年前 (2010-08-08)编程开发274

在6410+WM9714的Android平台上测试MIC IN录音功能,出现一个BUG。在该平台声音播放是完全正常的,但是录音后再播放刚录的声音,会有失真,同样的录音文件在电脑上播放也一样,说明是 Android录音失真的问题。后来通过打印9714的寄存器,发现录音频率是8000HZ,放音频率是44100HZ,这时基本上可以确定是由这个不匹 配引起的。
我在Android代码里:AudioHardwareALSA.cpp文件中的函数中设定采样率,如下:

  1. AudioStreamInALSA::AudioStreamInALSA
    (AudioHardwareALSA *parent) :mParent(parent)   
  2. {   
  3. static StreamDefaults _defaults = {   
  4. ....................   
  5. sampleRate : AudioRecord::DEFAULT_SAMPLE_RATE,   
  6. ....................   
  7. };   

设定了:

  1. static const int DEFAULT_SAMPLE_RATE = 44100;  

但是重烧程序后结果仍然存在Android录音失真这一问题,采样率还是8000,似乎被其他地方把值覆盖了。后来我试着把所有的采样率8000的地方全都改成44100,结果仍然一样是8000。到底是不是采样率的原因引起的呢?

之后用arecord命令来录音,前提是不能进入Android,否则音频设备会被占用。结果录得的声音播放时仍然是同样的效果,当时估计这问题应 该跟Android上层没有什么大的关系。后来别人有试通过将播放速度加快一倍,就得到的正常的播放音,但问题是仍然不知从何处来解决这个问题。

后来经过台湾同事的挖掘,改动录音MIC IN的DMA SIZE解决了此次问题。改动列出如下,原因尚待分析。

  1. static struct s3c24xx_pcm_dma_params 
    s3c6400_ac97_mic_mono_in = {  
  2. .client = &s3c6400_dma_client_micin,  
  3. .channel = DMACH_AC97_MIC_IN,  
  4. .dma_addr = S3C6400_PA_AC97 + S3C_AC97_MIC_DATA,  
  5. .dma_size = 2,///4  
  6. }; 

该参数最终在s3c24xx_pcm_hw_params中修改DMA配置所用。

扫描二维码推送至手机访问。

版权声明:本文由知了博客发布,如需转载请注明出处。

本文链接:https://www.webgou.info/?id=259

标签: androidos
分享给朋友:

“Android录音失真具体解决方案” 的相关文章

Android核心模块内容概述

Android作为一个移动设备的平台,其软件层次结构包括了一个操作系统(OS),中间件(MiddleWare)和应用程序(Application)。根据Android的软件框图,其Android核心模块结构自下而上分为以下几个层次:第一、操作系统层(OS)第二、各种库(Libraries)和Andr…

Android手机WiFi调试,查看logcat

在项目开发过程中,遇到这样的场景:有写特殊Android设备只有一个USB口,当挂载U盘之后就无法连接USB实时进行调试了。这儿时候如果设备可以开启WiFi,那就可以用WiFi进行调试;要开启网络调试,执行下面指令即可:"setprop service.adb.t…

在ios上使用Google analytics

在ios上使用Google analytics,今天简单地测试了一下,总结: Google analytics使用分为普通web(移动web),及app(包括移动app).ios app访问记录,需要几个库: (libGoogleAnalytics.a,CFNetwork,libsqlite3.…

Java基于Socket文件传输示例

最近需要进行网络传输大文件,于是对基于socket的文件传输作了一个初步的了解。在一位网友提供的程序基础上,俺进行了一些加工,采用了缓冲输入/输出流来包装输出流,再采用数据输入/输出输出流进行包装,加快传输的速度。废话少说,先来看服务器端的程序。1.服务器端package sterning;impo…

在Eclipse下安装C++插件CDT

按照eclipse的官方网站的要求,要下载如下的东东:1.eclipse(http://www.eclipse.org/downloads/index.php)…

对话框条的制作CDialogBar

1.创建对话框资源:在对话框资源编辑器内生成一个属性必须设置为....…

评论列表

leslie
leslie

不错,很多人都遇到了同样的问题,看来你的台湾同事是个经验丰富的老同志

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。