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

Android录音失真具体解决方案

webgou17年前 (2010-08-08)编程开发498

在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. };   
  8. } 

设定了:

  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录音失真具体解决方案” 的相关文章

软件会议思考

很多时候,也有很多想法,但过完之后也就没有.刚看到一篇关于危险职业的论断,提出收入大与出路窄很有道理. 今天,开会的主要主题有两个: 1.应对售后,编写提供给销售人员能定位程序异常的工具 2.后装车机市场,提高开发速度,破解协议任务的分解 关于工具,主要功能: 1.取得日志, 2.获取当前软件信…

ResultSet概论

  这篇文章并没有给出如何使用ResultSet的具体例子,只是从ResultSet的功能性上进行了详细的讲述。希望这篇文章对大家理解ResultSet能够有所帮助。下面就是这篇文章的具体内容。        …

iPhone开发指南-内存管理

内存管理工作原理在内存管理的Objective-C代码里,一个Cocoa对象存在于一个生命周期,有明确的阶段。它被创建,初始化,并使用(也就是,其它对象发 送消息给它)。它还可能会被保留,拷贝,或压缩,并最终被释放和销毁。下面的讨论以图表形式对一个典型对象的生命周期进行了描述,这里还没有涉及更多的细…

UTF-8 and Unicode FAQ

 2000年2月这篇文章说明了在 POSIX 系统 (Linux,Unix) 上使用 Unicode/UTF-8 所需要的信息. 在将来不远的几年里, Unicode 已经很接近于取代 ASCII 与 Latin-1 编码的位置了. 它不仅允许你处理处理事实上存在于地球上的任何语言文…

软媒清理大师

 软媒清理大师 …

存储与地址映射技术

wince存储与地址映射技术…

评论列表

leslie
leslie

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

发表评论

访客

看不清,换一张

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