List of usage examples for android.media AudioRecord ERROR_BAD_VALUE
int ERROR_BAD_VALUE
To view the source code for android.media AudioRecord ERROR_BAD_VALUE.
Click Source Link
From source file:com.inmobi.ultrapush.InfoRecActivity.java
@Override protected void onResume() { super.onResume(); TextView tv = (TextView) findViewById(R.id.textview_info_rec); tv.setMovementMethod(new ScrollingMovementMethod()); tv.setText("Testing..."); // TODO: No use... tv.invalidate();// w w w . j a va 2s . com // Show supported sample rate and corresponding minimum buffer size. String[] requested = new String[] { "8000", "11025", "16000", "22050", "32000", "44100", "48000", "96000" }; String st = "sampleRate minBufSize\n"; ArrayList<String> validated = new ArrayList<String>(); for (String s : requested) { int rate = Integer.parseInt(s); int minBufSize = AudioRecord.getMinBufferSize(rate, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT); if (minBufSize != AudioRecord.ERROR_BAD_VALUE) { validated.add(s); st += s + " \t" + Integer.toString(minBufSize) + "\n"; } } requested = validated.toArray(new String[0]); tv.setText(st); tv.invalidate(); // Test audio source String[] audioSourceString = new String[] { "DEFAULT", "MIC", "VOICE_UPLINK", "VOICE_DOWNLINK", "VOICE_CALL", "CAMCORDER", "VOICE_RECOGNITION" }; int[] audioSourceId = new int[] { MediaRecorder.AudioSource.DEFAULT, // Default audio source MediaRecorder.AudioSource.MIC, // Microphone audio source MediaRecorder.AudioSource.VOICE_UPLINK, // Voice call uplink (Tx) audio source MediaRecorder.AudioSource.VOICE_DOWNLINK, // Voice call downlink (Rx) audio source MediaRecorder.AudioSource.VOICE_CALL, // Voice call uplink + downlink audio source MediaRecorder.AudioSource.CAMCORDER, // Microphone audio source with same orientation as camera if available, the main device microphone otherwise (apilv7) MediaRecorder.AudioSource.VOICE_RECOGNITION, // Microphone audio source tuned for voice recognition if available, behaves like DEFAULT otherwise. (apilv7) // MediaRecorder.AudioSource.VOICE_COMMUNICATION, // Microphone audio source tuned for voice communications such as VoIP. It will for instance take advantage of echo cancellation or automatic gain control if available. It otherwise behaves like DEFAULT if no voice processing is applied. (apilv11) // MediaRecorder.AudioSource.REMOTE_SUBMIX, // Audio source for a submix of audio streams to be presented remotely. (apilv19) }; tv.append("\n-- Audio Source Test --"); for (String s : requested) { int sampleRate = Integer.parseInt(s); int recBufferSize = AudioRecord.getMinBufferSize(sampleRate, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT); tv.append("\n(" + Integer.toString(sampleRate) + "Hz, MONO, 16BIT)\n"); for (int iass = 0; iass < audioSourceId.length; iass++) { st = ""; // wait for AudioRecord fully released... try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } AudioRecord record; record = new AudioRecord(audioSourceId[iass], sampleRate, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT, recBufferSize); if (record.getState() == AudioRecord.STATE_INITIALIZED) { st += audioSourceString[iass] + " successed"; int as = record.getAudioSource(); if (as != audioSourceId[iass]) { int i = 0; while (i < audioSourceId.length) { if (as == audioSourceId[iass]) { break; } i++; } if (i >= audioSourceId.length) { st += "(auto set to \"unknown source\")"; } else { st += "(auto set to " + audioSourceString[i] + ")"; } } st += "\n"; } else { st += audioSourceString[iass] + " failed\n"; } record.release(); record = null; tv.append(st); tv.invalidate(); } } }
From source file:edu.polyu.screamalert.SoundProcessing.java
public static AudioRecord findAudioRecord() { try {//ww w.j a v a2 s. co m recordBufferSize = AudioRecord.getMinBufferSize(Config.RECORDER_SAMPLERATE, Config.RECORDER_CHANNELS, Config.RECORDER_AUDIO_ENCODING); nSubframePerBuf = recordBufferSize / frameShift / 2; // e.g., 8192/128/2 = 32 System.out.println("recordBufferSize: " + recordBufferSize); if (recordBufferSize != AudioRecord.ERROR_BAD_VALUE) { // check if we can instantiate and have a success AudioRecord recorder = new AudioRecord(AudioSource.DEFAULT, Config.RECORDER_SAMPLERATE, Config.RECORDER_CHANNELS, Config.RECORDER_AUDIO_ENCODING, recordBufferSize); if (recorder.getState() == AudioRecord.STATE_INITIALIZED) { return recorder; } } } catch (Exception e) { e.printStackTrace(); } Toast.makeText(thisContext, "Fail to create AudioRecord object", Toast.LENGTH_LONG).show(); return null; }
From source file:com.ece420.lab3.MainActivity.java
private void queryNativeAudioParameters() { AudioManager myAudioMgr = (AudioManager) getSystemService(Context.AUDIO_SERVICE); nativeSampleRate = myAudioMgr.getProperty(AudioManager.PROPERTY_OUTPUT_SAMPLE_RATE); nativeSampleBufSize = myAudioMgr.getProperty(AudioManager.PROPERTY_OUTPUT_FRAMES_PER_BUFFER); int recBufSize = AudioRecord.getMinBufferSize(Integer.parseInt(nativeSampleRate), AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT); supportRecording = true;/* www. j a va 2 s . c o m*/ if (recBufSize == AudioRecord.ERROR || recBufSize == AudioRecord.ERROR_BAD_VALUE) { supportRecording = false; } }
From source file:com.inmobi.ultrapush.AnalyzeActivity.java
/** * Return a array of verified audio sampling rates. * * @param requested: the sampling rates to be verified *//* w ww . ja v a2s .c o m*/ private static String[] validateAudioRates(String[] requested) { ArrayList<String> validated = new ArrayList<String>(); for (String s : requested) { int rate; String[] sv = s.split("::"); if (sv.length == 1) { rate = Integer.parseInt(sv[0]); } else { rate = Integer.parseInt(sv[1]); } if (rate != 0) { if (AudioRecord.getMinBufferSize(rate, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT) != AudioRecord.ERROR_BAD_VALUE) { validated.add(s); } } else { validated.add(s); } } return validated.toArray(new String[0]); }