我目前使用AudioRecord从Android设备的麦克风录制音频,然后将其直接传输到AudioTrack,在Android设备的耳机中播放。我想知道我是否可以使用MediaPlayer和MediaRecorder类来做同样的事情,因为我需要使用媒体类而不是音频类可用的AMR-NB编码。我对MediaRecorder和MediaPlayer的问题是,我似乎必须先录制到一个文件,然后再播放该文件?这不是我想要做的,是否可以使用媒体类将音频声音从麦克风流式传输到耳机?我使用音频类的代码如下,是否可以对MediaPlayer和MediaRecorder执行相同的操作?publicclass
我在OSX上运行AndroidEmulator并尝试使用AudioRecord采集音频样本并使用FFTjar(用于调谐应用程序)确定频率。我在使用手机进行调试时遇到困难(http://stackoverflow.com/questions/4425127/android-galaxy-s-phone-adb-debug-bridge-trouble-on-mac-osx)所以我想使用模拟器。当我从模拟器中提取音频样本时,它似乎包含随机值。我会假设它正在录制一些东西,但我不确定它是否来self电脑的麦克风。任何人都可以确认这些值可能来自什么以及是否可以使用模拟器进行记录。我正在像这样初始
我正在尝试使用AudioRecord类录制一些声音,然后将其写入输出.pcm文件。我希望我的程序继续录制,直到按下停止按钮。不幸的是,无论我录制多长时间,输出文件大小始终为3528字节,持续约20毫秒。同样根据ToolsoftAudioTools,该文件的属性是:44100Hz、16位、立体声,即使我使用的是采样频率完全不同的单声道。ThreadrecordingThread;booleanisRecording=false;intaudioSource=AudioSource.MIC;intsampleRateInHz=44100;intchannelConfig=AudioForm
我目前正在使用AudioRecordjava对象从麦克风接收音频。有时我拉取数据的速度不够快(例如,发生应用程序切换时)。有什么方法可以让我知道音频流被音频缓冲区下溢中断了吗? 最佳答案 您可以尝试使用MediaRecorder类而不是AudioRecord,它提供了一些额外的方法,包括注册错误回调方法的能力。不过,我不确定是否所有版本的Android都会调用它以防出现欠载。如果您在此处获得回调,那可能是“更清洁”的解决方案。另一种解决方案是,您可以测量轮询音频所用的时间,并确定是否发生了数据不足。基本上,您会在调用read()之前
我试图在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谁知道这些是什么意思?
我正在尝试通过小型录音来查找服务的声压级,但Android不允许我访问硬件。我在Logcat中收到以下错误:错误来自以下代码:AudioRecordrecordInstance=null;//We'reimportant...android.os.Process.setThreadPriority(android.os.Process.THREAD_PRIORITY_URGENT_AUDIO);shortbufferSize=4096;//2048;recordInstance=newAudioRecord(MediaRecorder.AudioSource.MIC,this//lin