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

android Audio 应用接口 转载

阅读更多
android提供一套完整的audio机制,对上层用户而言,概括起来就是两个方面:录音(record)和播放(track).
了解了这两个简单的接口,对开发普通的audio应用基本上就足够了。总结如下:

录音(record):
min = AudioRecord.getMinBufferSize(Freq,
                AudioFormat.CHANNEL_CONFIGURATION_MONO,
                AudioFormat.ENCODING_PCM_16BIT);
这是在查询系统对特定的采样频率和模式下需要的最小数据包大小。Freq 可以设8000, 16000,32000, 44100, 48000.但是得参考具体的硬件平台参数, 某些平台是只支持固定的采样频率的。
recorder = new AudioRecord(MediaRecorder.AudioSource.MIC, Freq, AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT,
                min);
这就是实际的record对象了。可以看到这个例子里的设置是MIC采样,单声道,PCM 16B的。这就已经配置了用户需要的audio参数。
recorder.startRecording();
       
while(true)
{
                     recorder.read(buf_id, 0, min);

  }
这就是真正干活的部分了,值得注意的是read的最后一个参数min并不一定是上文求出的数值,使用者完全可以根据实际情况,自己推算出合适的数值。
最后别忘了关门:)
recorder.stop();
recorder.release();

播放(playback/track):
接口与recorder非常类似。
int iMinBufSize = AudioTrack.getMinBufferSize(sampleRate,
                AudioFormat.CHANNEL_CONFIGURATION_MONO,
                AudioFormat.ENCODING_PCM_16BIT);
这是在询问系统固定模式下的最小buffer size。
track = new AudioTrack(AudioManager.STREAM_VOICE_CALL, sampleRate, AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT,
                iMinBufSize, AudioTrack.MODE_STREAM);
得到对象了。具体解释参见上文。
while(true)
{
   track.write(buf_id, 0, chunkSize);
  }
干活!同样,这个写 的数目需要使用者自己测算。
收工:
track.flush();
track.release();

分享到:
评论

相关推荐

    android audio 音频调试技巧

    ### Android Audio 音频调试技巧 在Android平台上进行音频调试是一项重要的技能,它涉及到音频硬件、软件以及系统级配置等多个方面。本文将详细介绍如何利用不同的工具和技术来诊断和解决音频问题,包括查看声卡...

    android_audio_HAL.rar_android_android audio_android audio HAL_an

    当应用程序或系统服务需要播放声音或者录制音频时,它们会通过Android框架层的音频服务与Audio HAL交互。Audio HAL则根据硬件特性,将这些请求转化为对特定硬件的操作。 移植Android Audio HAL的过程通常包括以下几...

    Android AudioRecord和MediaRecorder录音并实现了实时获取音量大小

    在Android平台上,音频处理是应用程序开发中的重要组成部分,特别是对于音乐、语音聊天或者游戏应用。本文将深入探讨如何使用`AudioRecord`和`MediaRecorder`类进行录音,并实现实时获取音量大小的功能。 首先,`...

    Android的Audio系统

    - **libmedia.so**:提供核心Audio接口,同时面向上层应用和本地代码开放。 - **libaudioflinger.so**:实现AudioFlinger的功能,是Audio系统的核心部分。 - **硬件抽象层**:为AudioFlinger提供与硬件交互的接口。 ...

    Android Audio系统概述

    主要介绍 述写了Android Audio部分,感觉 很不错的

    Android audioRecord录音Demo

    在Android平台上,音频录制是应用程序开发中的一个常见需求,`AudioRecord`类是Android SDK提供的一种用于低级音频数据录制的API。这个`Android audioRecord录音Demo`将向我们展示如何利用`AudioRecord`类来实现一个...

    Android 12 AudioFlinger 分析(RK3588)

    在Android操作系统中,AudioFlinger是音频服务的核心组件,它负责处理音频的混合、路由、硬件交互...通过深入分析这些技术细节,开发者可以更好地理解如何利用Android 12的AudioFlinger特性来创建高质量的音频应用。

    Android AudioRecord Demo.zip

    在Android平台上,AudioRecord类是音频输入的核心组件,它允许开发者录制...通过分析和理解这个"Android AudioRecord Demo.zip"项目,你可以学习到如何在Android应用程序中实现音频录制功能,从而创建自己的录音应用。

    Android Audio相关流程时序图

    Android 11 Audio相关流程时序图,需要使用EA画图工具打开。包含Audio中音量获取/设置、焦点申请/放弃、属性设置等相关流程,从APP层到Hal层。详细讲解相关文章参考:...

    android Audio ALSA框架分析

    ### Android Audio ALSA框架分析 #### 一、概述 Android 的音频系统是其核心功能之一,它负责处理声音的播放和录制。为了更好地理解这一复杂系统的工作原理,本篇文章将重点解析 Android 音频框架的核心组件及其与...

    Android audio知识总结.pdf

    AudioTrack是Android应用程序框架API的一部分,主要负责回放已解码的PCM音频流。它适用于对延迟要求严格的场景,例如实时通信或游戏。AudioTrack提供两种传输模式:流式(MODE_STREAM)和静态缓冲(MODE_STATIC)。...

    Android_Audio架构全分析.pdf

    总的来说,Android Audio架构的核心在于通过合理的分层设计和标准化接口来支持各种不同的硬件平台,同时保证音频处理的高性能和低延迟。这对于移动设备上的多媒体应用来说至关重要。希望通过对这份文档的深入解读,...

    android audio 框架分析流程

    android audio 框架流程分析图

    Android Audio 音频开发

    hardware/libhardware_legacy/include/hardware/Audio 硬件抽象层的实现在各个系统中可能是不同的,需要使用代码去继承相应的类并实现它们,作为 Android 系统本地框架层和驱动程序接口。 在 Android 中,音频系统...

    Android应用源码之AudioRecord_Android.zip

    这份"Android应用源码之AudioRecord_Android.zip"显然包含了关于如何使用AudioRecord类进行音频录制的示例代码。接下来,我们将深入探讨AudioRecord的工作原理、使用方法以及相关的编程知识点。 1. **AudioRecord...

    android AudioRecord AudioTrack实现录音并播放

    android AudioRecord AudioTrack实现录音并播放 并支持参数选择(频率、编码格式、声道) 更多信息可参考http://blog.sina.com.cn/u/1788464665

    android audio system

    综上所述,Android音频系统是一个复杂但功能强大的子系统,它允许应用程序和系统服务高效地处理音频。然而,正如给定日志所示,其复杂性也可能导致各种问题,例如音频输出设备识别错误、资源管理不当等。对于开发者...

    Android P Audio系统笔记:AudioPolicy&AudioFlinger初始化

    AudioFlinger和AudioPolicy两者是Android Audio框架层最主要的两个服务,他们两个是Android框架层的本地服务,在init.rc中启动; AudioPolicyManager负责音频策略定制者,说白了就相当于Audio系统的司令。 Audio...

    android audiorecord录音并绘图

    综上所述,通过`AudioRecord`进行录音并利用自定义视图进行实时绘图,可以实现一个简单的Android音频录制和可视化应用。在实际项目中,还需要关注权限管理、错误处理和用户交互等方面,以提供更好的用户体验。

    Android audio多媒体播放器的相关编程实例

    一个挺简单的Android audio多媒体编程实例,在源代码中:声明一个ImageButton,TextView,MediaPlayer变量,声明一个Flag作为确认音乐是否暂停的变量并默认为false,通过findViewById构造器创建TextView与ImageView...

Global site tag (gtag.js) - Google Analytics