AudioRecord对象需要在Activity的线程里面创建。读取数据时可以在独立的线程里面进行。否则华为U8800之类手机录音时会出错。
public VoiceRecorder(Tranceiver tx, int sampleRate)
throws IllegalArgumentException, IllegalStateException {
this.tx = tx;
final int bufSize = AudioRecord.getMinBufferSize(sampleRate,
CHANNEL_CONFIGURATION_MONO, ENCODING_PCM_16BIT);
this.rec = new AudioRecord(MediaRecorder.AudioSource.MIC, sampleRate,
CHANNEL_CONFIGURATION_MONO, ENCODING_PCM_16BIT, bufSize);
rec.startRecording();
}
public void run() {
final byte[] buf = new byte[8 * 1024];
while (running) {
int n = rec.read(buf, 0, buf.length);
if (n < 1)
continue;
try {
tx.send(buf, 0, n);
} catch (InterruptedException e) {
Log.w(TAG, e);
}
}
try {
rec.stop();
} catch (IllegalStateException e) {
Log.w(TAG, e);
}
rec.release();
}
分享到:
相关推荐
3. 权限管理:使用AudioRecord需要在AndroidManifest.xml中声明`<uses-permission android:name="android.permission.RECORD_AUDIO" />`权限。 4. 设备兼容性:不同的Android设备可能有不同的音频硬件和驱动,需要...
`AudioRecord`类是Android SDK提供的一个核心API,用于实现低级别的音频录制功能。本文将深入探讨如何使用`AudioRecord`类来录制音频,并提供相关的编程知识。 首先,我们要理解`AudioRecord`类的基本概念。`Audio...
本文将深入探讨如何使用`AudioRecord`和`MediaRecorder`这两个核心API来实现音频录制,特别是针对PCM和AAC这两种编码格式。 首先,我们要理解PCM( Pulse Code Modulation)和AAC(Advanced Audio Coding)的基本...
下面我们将深入探讨AudioRecord的原理、使用方法以及在实际应用中的注意事项。 AudioRecord类主要用于创建一个可以从麦克风获取原始音频数据的对象。它的工作原理是创建一个缓冲区,持续从麦克风读取音频样本并存储...
《Android平台上的AudioRecord详解》 在Android操作系统中,音频处理是移动应用开发的一个重要组成部分。AudioRecord类是Android SDK提供的一种核心API,用于实现低级别的音频数据录制。本文将深入探讨AudioRecord...
博客上的同步内容可能进一步解释了代码的工作原理和注意事项。 需要注意的是,由于蓝牙录音涉及到不同设备间的兼容性和性能问题,实际操作中可能需要针对不同的蓝牙设备进行调试和优化。此外,Android系统版本的...
本文将详细探讨如何使用Android的AudioRecord类来实现实时录音,并覆盖到音频编码、压缩、录音动画以及播放功能。 1. **AudioRecord类**: Android系统提供了一个名为AudioRecord的类,用于捕获音频数据。它允许...
- **注意事项**:提供了关于产品更新、技术支持等方面的重要声明。 ### 四、关键技术解析 #### 1. MSP430F5310单片机 - **特性**:低功耗、高精度的16位RISC架构微控制器。 - **应用领域**:广泛应用于各种低功耗...
四、优化与注意事项 1. 音频数据处理可能会消耗大量CPU资源,因此在计算音量时应尽量减少不必要的计算。 2. 为了提高性能,可以考虑使用线程或协程处理录音和UI更新。 3. 为了防止用户无法操作,记得在录音过程中...
READ_ME.txt文件可能包含了关于该项目的使用说明和注意事项,如编译环境、依赖库等信息。 通过理解Android Media框架和`AudioRecord`类的工作原理,我们可以轻松地为Android应用添加录音功能。这不仅可以用于创建...
在Android平台上进行音频录制涉及到许多核心技术和组件,包括MediaRecorder、AudioRecord以及音频编码格式等。下面将详细探讨这些知识点。 一、MediaRecorder类 MediaRecorder是Android系统提供用于捕捉多媒体数据...
#欢迎使用 audioBenchmark 应用程序! ##在 Apache 2.0 许可下发布。 该软件按原样提供,目前不应作为独立应用程序运行,但与 ... 建筑注意事项: 仅使用 ADT 进行测试(未使用 Android Studio,因为当时不支持 NDK)
实现这一功能的关键在于理解Android的音频框架,特别是`AudioRecord`类和MP3编码库的集成。以下是对这个主题的详细探讨。 ### `AudioRecord` 类 `AudioRecord`是Android SDK提供的一个核心类,它允许开发者从设备...
编写测试代码,通过Android Studio提供的AudioRecord和AudioTrack类获取麦克风输入并播放解码后的音频。确保在使用Speex前正确设置采样率、通道数和编码格式。 7. **注意事项** - 考虑到不同设备的处理器架构,你...
### 注意事项 - 录音权限:确保在AndroidManifest.xml中添加了`<uses-permission android:name="android.permission.RECORD_AUDIO" />`权限。 - 实时保存:由于Android内存限制,不宜一次性读取太多数据,建议边录音...
2. **Android音频处理**: 在Android平台上,开发者可以使用AudioRecord类来捕获音频数据,然后通过Lame4Android将这些数据编码为MP3格式。同时,MediaRecorder类也可以用于录制音频,但默认并不支持MP3编码,因此...
四、注意事项 1. 处理音频数据时要注意性能优化,避免阻塞主线程,可能导致应用无响应。 2. 录音和播放都需要申请相应的权限,如`RECORD_AUDIO`和`MODIFY_AUDIO_SETTINGS`。 3. 音频数据的采样率和位深度应与设备的...
以上就是使用Android的FFT获取音频频率并实时显示的基本步骤和注意事项。实际应用中可能还需要考虑音频数据的质量、噪声处理、能耗控制等因素,以提供更好的用户体验。希望这些信息对你有所帮助。
Android的音频系统可以分为几个主要组件:AudioManager、AudioTrack和AudioRecord。AudioManager负责管理整个系统的音频策略,如铃声、通知声音等。AudioTrack用于播放音频数据,而AudioRecord用于录制音频。在这...
本文将深入探讨PortAudio在Android上的应用、编译过程以及使用注意事项。 1. **PortAudio for Android简介** PortAudio在Android上的实现通常涉及到将C语言编写的原始PortAudio源代码与Android NDK(Native ...