我目前使用AudioRecord从Android设备的麦克风录制音频,然后将其直接传输到AudioTrack,在Android设备的耳机中播放。我想知道我是否可以使用MediaPlayer和MediaRecorder类来做同样的事情,因为我需要使用媒体类而不是音频类可用的AMR-NB编码。我对MediaRecorder和MediaPlayer的问题是,我似乎必须先录制到一个文件,然后再播放该文件?这不是我想要做的,是否可以使用媒体类将音频声音从麦克风流式传输到耳机?我使用音频类的代码如下,是否可以对MediaPlayer和MediaRecorder执行相同的操作?publicclass
我正在尝试使用AudioRecord类录制一些声音,然后将其写入输出.pcm文件。我希望我的程序继续录制,直到按下停止按钮。不幸的是,无论我录制多长时间,输出文件大小始终为3528字节,持续约20毫秒。同样根据ToolsoftAudioTools,该文件的属性是:44100Hz、16位、立体声,即使我使用的是采样频率完全不同的单声道。ThreadrecordingThread;booleanisRecording=false;intaudioSource=AudioSource.MIC;intsampleRateInHz=44100;intchannelConfig=AudioForm
我试图在Android应用程序中为吉他制作调谐器。为此,我使用了库audiorecord.java,但在编译中出现错误:07-0313:48:49.0412391-2426/?E/AudioRecord:AudioFlingercouldnotcreaterecordtrack,status:-107-0313:48:49.0442391-2426/?E/AudioRecord-JNI:ErrorcreatingAudioRecordinstance:initializationcheckfailedwithstatus-1.07-0313:48:49.0442391-2426/?E/andr
我已经编写了使用AudioRecord录制音频文件的代码,同时在SD卡上写入文件时我制作了两个版本。版本1录制的文件原样保存在SD卡上。版本2我正在对录制的文件应用增益功能并保存在SD卡上。这在SonyEricson手机上效果非常好。音频音量也得到了很大程度的提升。但我正在努力让它在三星设备上运行。当我播放录制的文件时,它听起来像会说话的汤姆猫:P最初我认为三星设备不喜欢我用来创建的组合录音机。所以我使用了以下方法,循环进入可用配置并使用最佳配置来初始化AudioRecord。publicAudioRecordfindAudioRecord(){for(intrate:mSampleR
Android:我想从麦克风读取缓冲区以便我可以对其执行处理,以下是我的代码intsampleRateInHz=8000;//44100,22050and11025intchannelConfig=AudioFormat.CHANNEL_CONFIGURATION_MONO;intaudioFormat=AudioFormat.ENCODING_PCM_16BIT;//intbufferSize=11025+intbufferSize=AudioRecord.getMinBufferSize(sampleRateInHz,channelConfig,audioFormat);short
当我使用AndroidsAudioRecord从麦克风录音时,我得到了这个烦人的Artifact有没有办法避免或消除这种情况?它是什么?或者我得到它是因为我在配置中做错了什么(但其他一切正常)。这是我的AudioRecord配置:sampleRateInHz=44100;channelConfigRec=AudioFormat.CHANNEL_IN_MONO;audioFormat=AudioFormat.ENCODING_PCM_16BIT;bufferSizeInBytesRec=AudioRecord.getMinBufferSize(sampleRateInHz,channel
我有一段简单的代码可以创建一个AudioRecord对象,然后使用它来录制文件。这是非常标准的,似乎工作得很好。我使用的是运行Android2.2的三星GalaxySVibrant。但是,我以不同的时间间隔在logcat中收到诸如此类的消息:04-1314:03:30.754:V/AudioRecord(4831):Overrunuser:820,server:1040,flowControlFlag004-1314:03:30.766:V/AudioRecord(4831):Overrunuser:820,server:1040,flowControlFlag1谁知道这些是什么意思?
publicintread(byte[]audioData,intoffsetInBytes,intsizeInBytes).此方法从音频硬件读取音频数据以记录到缓冲区中。它的参数是:audioData写入录制音频数据的数组。audioData中的offsetInBytes索引,数据从中写入,以字节表示。sizeInBytes请求的字节数。它返回读取的字节数或ERROR_INVALID_OPERATION如果对象未正确初始化,或者ERROR_BAD_VALUE如果参数未解析为有效数据和索引。字节数不会超过sizeInBytes。我在我的代码中这样写了这个方法:整数;字节[]buf=新字
我在尝试初始化AudioRecord对象时不断收到此错误,试图使用Eclipse使用模拟器录制声音。我尝试过各种位采样率,8000是唯一有效的,但错误继续出现。我试过各种版本的sdk,1.5、1.6、2、2.2和2.3.1。(以及与AVD的组合)。代码如下:Log.v(TAG,"Abouttoinitializerecording");//int[]samplingRates={44100,22050,16000,11025,8000};int[]samplingRates={8000};for(inti=0;i错误发生在实例化,AudioRecordrecord=new等有没有人见过
我在使用我的应用程序RECORDING时出现缓冲区溢出。录制在Service中执行。我不明白为什么我会从AudioFlinger收到这条消息。下面我实例化了AudioRecord对象并设置了它的回调。bufferSize=AudioRecord.getMinBufferSize(sampleRate,channelConfig,audioFormat);aRecorder=newAudioRecord(audioSource,sampleRate,channelConfig,audioFormat,bufferSize);aRecorder.setRecordPositionUpdat