Articles of android audiorecord

AudioRecord:缓冲区溢出?

使用我的应用程序进行RECORDING ,我收到缓冲区溢出。 录制在Service执行。 我无法弄清楚为什么我从AudioFlinger收到此消息。 下面我实例化AudioRecord对象并设置它的回调。 bufferSize = AudioRecord.getMinBufferSize(sampleRate, channelConfig, audioFormat); aRecorder = new AudioRecord(audioSource, sampleRate, channelConfig, audioFormat, bufferSize); aRecorder.setRecordPositionUpdateListener(updateListener); bytesPerSample = bitsPerSample / 8; int bytesPerFrame = nChannels * bytesPerSample; framePeriod = bufferSize / bytesPerFrame; // nr of frames that can be kept in a bufferSize dimension int result = aRecorder.setPositionNotificationPeriod(framePeriod); buffer = new byte[bufferSize]; […]

意外的状态行:URL openStream()方法的ICY 200 OK?

根据kitakt 4.4的变化,播放shoutcast流有一些问题(那些返回“ICY”而不是“HTTP / 1.x”响应)。 因此,kitkat的解决方案是在我们打开流之前在JVM中重新注册“icy”协议前缀: try { java.net.URL.setURLStreamHandlerFactory( new java.net.URLStreamHandlerFactory(){ public java.net.URLStreamHandler createURLStreamHandler( String protocol ) { Log.d( LOG, “Asking for stream handler for protocol: ‘” + protocol + “‘” ); if (“icy”.equals( protocol )) return new com.spoledge.aacdecoder.IcyURLStreamHandler(); return null; } }); } catch (Throwable t) { Log.w( LOG, “Cannot set the ICY URLStreamHandler – […]

如何在Android中录制音频时调整麦克风灵敏度

我正在制作录音应用程序。 在app中我有一个Seekbar来改变输入语音增益。 我找不到任何调整输入语音增益的方法。 我正在使用AudioRecord类来录制语音。 recorder = new AudioRecord(MediaRecorder.AudioSource.MIC, RECORDER_SAMPLERATE, RECORDER_CHANNELS, RECORDER_AUDIO_ENCODING, bufferSize); recorder.startRecording(); 我在Play商店看到了一个使用此function的应用程序。 https://play.google.com/store/apps/details?id=com.grace.microphone

如何在android上录制音频

有一些方法可以在Android上录制音频吗? 我使用了AudioRecord API,它崩溃了应用程序。 难道我做错了什么? short[] audioData = new short[minBufferSize]; AudioRecord audioRecord = new AudioRecord(MediaRecorder.AudioSource.MIC, 11025, AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT, minBufferSize); audioRecord.startRecording(); while(recording){ int numberOfShort = audioRecord.read(audioData, 0, minBufferSize); for(int i = 0; i < numberOfShort; i++){ dataOutputStream.writeShort(audioData[i]); } } audioRecord.stop();

AudioRecord和AudioTrack延迟

我正在尝试开发像iRig for android这样的应用程序,所以第一步是捕获麦克风输入并同时播放它。 我有它,但问题是我得到一些延迟,使这无法使用,如果我开始处理缓冲区,我担心它将完全无法使用。 我像这样使用audiorecord和audiotrack: new Thread(new Runnable() { public void run() { while(mRunning){ mRecorder.read(mBuffer, 0, mBufferSize); //Todo: Apply filters here into the buffer and then play it modified mPlayer.write(mBuffer, 0, mBufferSize); //Log.v(“MY AMP”,”ARA”); } 而且这种方式是inicialization: // ==================== INITIALIZE ========================= // public void initialize(){ mBufferSize = AudioRecord.getMinBufferSize(mHz, AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT); mBufferSize2 = AudioTrack.getMinBufferSize(mHz, AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT); mBuffer […]

增加录制音频的音量输出

我正在尝试在Android中拨打电话录音应用。 我正在使用扬声器记录上行和下行音频。 我遇到的唯一问题是音量太低。 我已经将使用AudioManager的设备的音量增加到最大,并且它不能超越它。 我第一次使用MediaRecorder,但由于它function有限并提供压缩音频,我尝试使用AudioRecorder。 我还没弄明白如何增加音频。 我也检查了Github上的项目,但这没用。 我在stackoverflow上搜索了最近两周,但根本找不到任何东西。 我很确定这是可能的,因为许多其他应用程序正在这样做。 例如自动呼叫记录器就是这样做的。 我知道我必须对音频缓冲区做些什么,但我不太清楚需要做些什么。 你能指导我吗? 更新: – 对不起,我忘了提到我已经在使用Gain了。 我的代码几乎与RehearsalAssistant类似(事实上我是从那里派生出来的)。 增益不会超过10dB,并且不会过多地增加音量。 我想要的是我应该能够听到音频,而不是把我的耳朵放在扬声器上,这是我的代码所缺乏的。 我在SoundDesign SE上询问了有关音量/响度function的类似问题。 它提到增益和响度是相关的,但它没有设置实际的响度级别。 我不确定事情是如何运作的,但我决心获得大声的音量输出。

为audioRecord实现getMaxAmplitude

我在我的应用程序中使用audioRecord而不是mediarecorder它工作正常但我有一个逻辑,高度依赖于maxamplitude这是很难获得使用audiorecord这里是我在阅读缓冲区时使用的 private void writeAudioDataToFile(){ byte data[] = new byte[bufferSize]; String filename = getTempFilename(); FileOutputStream os = null; try { os = new FileOutputStream(filename); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } int read = 0; max=0; if(null != os){ while(isRecording){ read = recorder.read(buffer, 0, bufferSize); int ab = (buffer[0] & 0xff) […]

当另一个应用在Android中使用麦克风时,无法访问麦克风

我正在使用以下URL中的代码,以便通过AudioRecord从麦克风获取声音数据: http : //www.dreamincode.net/forums/topic/303235-visualizing-sound-from-the-microphone/ 我看到的问题是,如果另一个应用程序也使用麦克风,我从AudioRecord收到错误(状态-3)。 如果我杀死正在使用麦克风的其他应用程序,一切都按预期工作。 是否有一个优雅的解决方案,即使另一个应用程序已经在使用它,我的应用程序也可以访问麦克风? 谢谢。

在Android中显示音频录制的声波

我们如何显示如下图所示的声波。 当用户说话时,黄色条将根据用户的音量进行animation处理。 请指导我..有没有可用的参考链接? 有没有可用的示例教程? iPhone中的同样问题。 但我想在Android中使用它。

Android:应设置什么音频模式以在设备之间发送接收语音

我正在尝试在两个Android设备Tablet和Mobile(通过Java套接字)之间传输语音/音频(双向)。 平板电脑可以清晰播放收到的音频(语音),但手机播放的音频是噪音。 然后我在平板电脑的代码中设置此音频模式: audioManager.setMode(AudioManager.MODE_IN_CALL); 这导致移动接收清晰的语音。 但平板电脑变得沉默,它不会播放收到的音频(或者说它听不到)。 我不确定我应该在这里使用哪种AudioManager模式组合(如果有的话)?