草庐IT

Audiorecord

全部标签

android - 为什么 AudioRecord.getMinBufferSize 会返回 ERROR_BAD_VALUE (-2)?

我正在三星GalaxySi9000上对此进行测试。intsampleRate=44100;intbufferSize=AudioRecord.getMinBufferSize(sampleRate,AudioFormat.CHANNEL_IN_MONO,AudioFormat.ENCODING_PCM_8BIT);它返回-2ERROR_BAD_VALUE。native采样率为44100Hz,由返回AudioTrack.getNativeOutputSampleRate(AudioManager.STREAM_SYSTEM).我尝试将采样率设置为1000、8000、22100和44100

从 MIC 读取 android AudioRecord 振幅

我正在尝试录制来自MIC的声音并绘制实时图表。我能够记录和绘制图表。问题是使用下面的代码记录的值不准确,例如……下图是我在完全没有声音时得到的。我看过使用fft的示例,但我不确定这对我的情况是否有帮助,因为我正在尝试绘制时域图,但我认为没有将其转换为频域的目的(目前)。其他人使用的是平均功率,这可能会有所帮助,但我不确定。感谢您的帮助。bufferSize=AudioRecord.getMinBufferSize(RECORDER_SAMPLERATE,RECORDER_CHANNELS,RECORDER_AUDIO_ENCODING);recorder=newAudioRecord(

android - 如何避免使用 AudioRecord 进行自动增益控制?

如何使用android.media.AudioRecord进行录音,而无需任何智能手机制造商依赖的花哨信号处理,如自动增益控制(AGC)和/或均衡、噪声抑制、回声消除、...只是纯粹的麦克风信号?背景MediaRecorder.AudioSource提供九个常量,DEFAULT和MIC最初在那里,VOICE_UPLINK、VOICE_DOWNLINK和VOICE_CALL添加到API级别4,CAMCORDER和VOICE_RECOGNITION添加到API7,VOICE_COMMUNICATION添加到API11,REMOTE_SUBMIX添加到API19,但第三方应用程序不可用。但它

Android AudioRecord - 不会第二次初始化

嘿,我目前正在尝试让AudioRecord正常工作。因为我在一个更大的项目中需要它。但它似乎搞砸了很多。我一直在尝试很多事情,所以当我追踪到这个错误时,我回到了基础。我正在使用SamsungGalaxyS作为我的调试设备。我的问题是,在我的设备重新启动后第一次我可以毫无问题地初始化我创建的AudioRecord对象。但是我第二次运行它时,它不会初始化AudioRecord对象。我试过几个频率,仅供引用。这是我的代码:packageandroid.audiorecordtest;importandroid.app.Activity;importandroid.media.AudioFor

android - AudioRecord:开始()状态-38

我有以下问题:我使用SpeechRecognizer来识别几个词。我用publicvoidonResults销毁SpeechRecognizer的方法。销毁后,我立即初始化AudioRecord并开始从麦克风录音。这会导致我的logcat出现以下错误:12-0900:44:01.976:E/AudioRecord(21185):start()status-38我的代码中没有抛出异常。AudioRecord无法正常启动。我假设SpeechRecognizer没有足够快地释放麦克风,因为如果我在AudioRecord的初始化前添加一个Thread.sleep(200),我不要遇到这个问题。

android - 在 Android 上使用 AudioRecord 和 MediaCodec 编码 AAC 音频

我正在尝试使用androidAudioRecord和MediaCodec对aac音频进行编码。我创建了一个与(EncodingH.264fromcamerawithAndroidMediaCodec)非常相似的编码器类。通过此类,我创建了一个AudioRecord实例,并告诉它读取其byte[]数据到AudioEncoder(audioEncoder.offerEncoder(Data))。while(isRecording){audioRecord.read(Data,0,Data.length);audioEncoder.offerEncoder(Data);}这是我的AudioR

java - Android AudioRecord 类 - 快速处理现场麦克风音频,设置回调函数

我想从麦克风录制音频并访问它以进行近乎实时的播放。我不确定如何使用AndroidAudioRecord类来录制一些麦克风音频并快速访问它。对于AudioRecord类,官方网站说“应用程序及时轮询AudioRecord对象”,“正在填充的缓冲区大小决定了在溢出未读数据之前录制的时间长度”。后来建议轮询频率较低时应使用更大的缓冲区。他们实际上从未在代码中显示示例。我在一本书中看到的一个示例使用AudioRecord类来连续读取一个新填充有实时麦克风音频的缓冲区,然后应用程序将此数据写入SD文件。伪代码看起来像-setupAudioRecordobjectwithbuffersizeand

java - Android AudioRecord 类 - 快速处理现场麦克风音频,设置回调函数

我想从麦克风录制音频并访问它以进行近乎实时的播放。我不确定如何使用AndroidAudioRecord类来录制一些麦克风音频并快速访问它。对于AudioRecord类,官方网站说“应用程序及时轮询AudioRecord对象”,“正在填充的缓冲区大小决定了在溢出未读数据之前录制的时间长度”。后来建议轮询频率较低时应使用更大的缓冲区。他们实际上从未在代码中显示示例。我在一本书中看到的一个示例使用AudioRecord类来连续读取一个新填充有实时麦克风音频的缓冲区,然后应用程序将此数据写入SD文件。伪代码看起来像-setupAudioRecordobjectwithbuffersizeand

android - 在 Android 自定义 ROM 中修改通话中的语音播放

我想修改Android操作系统(来自AOSP的官方图片),为正常的电话播放声音添加预处理。我已经为应用音频播放实现了这种过滤(通过修改HAL和audioflinger)。我可以只定位特定设备(Nexus5X)。另外,我只需要过滤播放-我不关心录制(上行)。更新#1:说清楚-我可以修改Qualcomm特定的驱动程序,或者在Nexus5X上运行的任何部分,并且可以帮助我修改通话中的播放。更新#2:我正在尝试创建一个Java层应用程序,将手机播放实时路由到音乐流。我已经成功地将它安装为系统应用程序,获得了使用AudioSource.VOICE_DOWNLINK初始化AudioRecord的权

android - 在 Android 自定义 ROM 中修改通话中的语音播放

我想修改Android操作系统(来自AOSP的官方图片),为正常的电话播放声音添加预处理。我已经为应用音频播放实现了这种过滤(通过修改HAL和audioflinger)。我可以只定位特定设备(Nexus5X)。另外,我只需要过滤播放-我不关心录制(上行)。更新#1:说清楚-我可以修改Qualcomm特定的驱动程序,或者在Nexus5X上运行的任何部分,并且可以帮助我修改通话中的播放。更新#2:我正在尝试创建一个Java层应用程序,将手机播放实时路由到音乐流。我已经成功地将它安装为系统应用程序,获得了使用AudioSource.VOICE_DOWNLINK初始化AudioRecord的权