`
yunshangbuhe
  • 浏览: 228943 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

android 录音失真

阅读更多
我们曾经在一篇文章中为大家详细介绍过有关Android多媒体录制功能的一些实现方法。其中就包括对录音的实现方法。今天我们可以通过这篇文章介绍的内容详细了解Android录音失真的具体解决方法,以帮助大家解决实际应用中出现的问题。

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

我在Android代码里:AudioHardwareALSA.cpp文件中的函数中设定采样率,如下:

AudioStreamInALSA::AudioStreamInALSA(AudioHardwareALSA *parent) :mParent(parent) { static StreamDefaults _defaults = { .................... sampleRate : AudioRecord::DEFAULT_SAMPLE_RATE, .................... }; }

设定了:

static const int DEFAULT_SAMPLE_RATE = 44100;

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

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

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

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

该参数最终在s3c24xx_pcm_hw_params中修改DMA配置所用。Android录音失真的相关解决办法就为大家介绍到这里。

分享到:
评论

相关推荐

    android录音将pcm转换为amr

    1. **读取PCM数据**:Android系统在录音时默认生成的是PCM格式的音频文件,可以通过AudioRecord类来获取。PCM数据包含采样率、位深度和通道数量等信息。 2. **编码转换**:将PCM数据转化为AMR格式,需要一个编码器...

    Android下使用speex保存录音格式wav

    代码参考了: 1. PCM录音数据转Wav格式(java版) ...作者在Android recorder的基础上,增加了把录音保存的功能。 4. Android下使用SoundTouch实现变声并转为wav格式播放(山寨汤姆猫) 代码可以运行,增加变音功能

    录音软件非常好用

    4. 兼容性:好的录音软件应该兼容各种操作系统,如Windows、MacOS、iOS和Android等,这样用户无论使用何种设备都能顺利进行录音。 5. 文件管理:录音文件的管理和分享也是重要的一环。软件可能提供了方便的文件分类...

    Android音轨合成

    不匹配的格式可能导致声音失真或无法播放。 2. **创建AudioTrack实例**:对于每个要合成的音轨,创建一个AudioTrack实例。设置正确的通道配置(如立体声或单声道)、音频格式和缓冲区大小。使用`AudioTrack.Builder...

    android的AudioRecord

    AudioRecord类是Android SDK中的一个关键类,它提供了录音功能。通过实例化AudioRecord对象,我们可以指定采样率、音频格式和通道数等参数,从而创建一个符合特定需求的录音实例。这些参数直接影响到录音的质量和...

    android 手机 工厂测试

    这包括检查麦克风的灵敏度、噪音消除功能以及在各种环境噪声下的录音质量。测试时,可能会播放不同音量和频率的声音来检测麦克风的响应,同时也会进行语音通话测试,确保通话清晰无干扰。 接着,听筒测试关注的是...

    android系统测试硬件的应用

    同时,MIC的测试会关注拾音质量、噪音抑制和回声消除等功能,确保语音通话和录音质量。 重力感应器、方向传感器和陀螺仪是实现移动设备动态感知的核心。这些传感器的测试包括精确度、响应时间和稳定性,例如在游戏...

    Android pcm转wav格式方法

    程序中的录音文件之前直接保存的是 ....与模拟信号比,它不易受传送系统的杂波及失真的影响。动态范围宽,可得到音质相当好的效果。简单的说,pcm就是没有压缩的音频格式。 wav wav全称是WAVE,.wav是其扩展名,它是

    安卓手机麦克风测试App

    该应用设计的主要目的是帮助用户了解手机麦克风的工作状态和寿命,确保在进行语音通话、录音或者使用各种需要麦克风输入的App时,麦克风能够正常工作。 1. **麦克风寿命测试**:此应用的一大特色是它可以模拟长时间...

    音频测试指导

    本文档主要针对Android系统的智能手机进行讨论,尽管大部分测试原则和技术也适用于其他操作系统和设备类型。 #### 客观与感知测试 - **客观测试**:侧重于量化指标,如电平、频率响应、总谐波失真加噪声(THD+N)...

    00 Summary_audio_structure

    1. **音频卡顿和失真**:这可能源于缓冲区管理不当、CPU过载或DMA设置不正确。通过调整缓冲区大小、优化调度策略和改善硬件性能可以缓解这些问题。 2. **设备兼容性**:不同的硬件可能有不同的音频接口和控制方式,...

    AudioPlayer

    3. 创建`AudioTrack`:根据录音的参数设置创建`AudioTrack`对象,确保它们匹配以避免音频失真。 4. 在一个循环中,读取`AudioRecord`的缓冲区数据,并将其写入到`AudioTrack`。 5. 播放音频:调用`AudioTrack`的`...

    WaveEditor Pro 1.71.apk

    WaveEditor for Android™录音机和编辑器 WaveEditor for Android™是一款用于编辑,录制和掌握音频的专业工具。WaveEditor还支持多种文件类型,使其适用于音频格式转换和媒体播放。 特点 •支持的导入格式:3gp,...

    16bitPCM降噪

    - **后处理**:可能需要进行信号平滑,避免降噪引入的新失真。 5. **16bitPCM降噪工程实践**: - 该资源可能包含源代码、配置文件和测试音频样本。 - 通过运行工程中的代码,可以观察到噪声被有效去除,音频质量...

    Iphone 5s_HP_GSM900_3GPP

    - **目的**: 确保Android智能设备(如iPhone 5s_HP_GSM900_3GPP)的录音和播放质量符合标准,主要关注麦克风和扬声器的质量。 ### 3. Keysight 音频测试方案 #### 3.1 U8903B 音频分析仪 - **特点**: 是德科技推出...

    APK图片铃声

    - **压缩算法**:使用有损或无损压缩,如PNG Crush、TinyPNG等工具,减少图片大小而不失真。 - **九宫格图**:对于需要拉伸的图片,可以将其设计为九宫格图,以保持比例不变且不模糊。 2. **音频资源处理**: - ...

    电子琴程序

    6. **实时效果**:如混响、延迟、失真等,提升演奏的氛围感。 7. **MIDI支持**:能够连接到MIDI设备,实现硬件和软件的互动。 8. **社交分享**:可能有内置的社区功能,让用户可以分享作品,互相交流。 在压缩包中...

    RK312X_CODEC_开发说明文档V1.0

    - 录音问题:可能遇到录音有杂音、输入信号增益过小、Skype通话啸叫及POP音问题。 - 耳机图标问题:涉及到系统图标显示与耳机状态不匹配的情况。 在展开以上知识点时,文档还提供了相关硬件连接示意图,设备树...

    100HZ~10K频率测试音源

    "android phone"表明这些测试音源可能适用于安卓手机,这意味着它们可能是专门为智能手机的音频系统设计的。手机音频测试尤其重要,因为移动设备往往在有限的空间内集成复杂的音频硬件和软件,这可能导致各种音频...

Global site tag (gtag.js) - Google Analytics