summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEd Falk <efalk@cyngn.com>2015-08-06 16:48:38 -0700
committerEdward A. Falk <efalk@cyngn.com>2015-08-12 15:48:26 -0700
commitdebb1f21145dba692ff36d681b11c7e7f691465d (patch)
treeba2eb7e6c2ece8ed4026e1cdb21a916ab2237562
parent20992826827c359ee42a8f8fd42e576f4b4be661 (diff)
downloadandroid_packages_apps_SoundRecorder-debb1f21145dba692ff36d681b11c7e7f691465d.tar.gz
android_packages_apps_SoundRecorder-debb1f21145dba692ff36d681b11c7e7f691465d.tar.bz2
android_packages_apps_SoundRecorder-debb1f21145dba692ff36d681b11c7e7f691465d.zip
SoundRecorder: Add support for 1-channel WAV files
Not all devices support stereo recording, and at least some will record noise on the right channel if you try. This commit adds a cm_config.xml file which determines whether the app records in stereo by default. Change-Id: Ia1f970fe3da7273caac45899fe6d13df51732105 TICKET: JALEBI-298
-rw-r--r--res/values/cm_config.xml4
-rw-r--r--src/com/android/soundrecorder/SoundRecorder.java15
2 files changed, 17 insertions, 2 deletions
diff --git a/res/values/cm_config.xml b/res/values/cm_config.xml
new file mode 100644
index 0000000..fbfe5b8
--- /dev/null
+++ b/res/values/cm_config.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <bool name="record_stereo">true</bool>
+</resources>
diff --git a/src/com/android/soundrecorder/SoundRecorder.java b/src/com/android/soundrecorder/SoundRecorder.java
index aa8d167..1b76dd9 100644
--- a/src/com/android/soundrecorder/SoundRecorder.java
+++ b/src/com/android/soundrecorder/SoundRecorder.java
@@ -260,6 +260,7 @@ public class SoundRecorder extends Activity
static final String AUDIO_AAC_MP4 = "audio/aac_mp4";
static final String AUDIO_WAVE_6CH_LPCM = "audio/wave_6ch_lpcm";
static final String AUDIO_WAVE_2CH_LPCM = "audio/wave_2ch_lpcm";
+ static final String AUDIO_WAVE_1CH_LPCM = "audio/wave_1ch_lpcm";
static final String AUDIO_AAC_5POINT1_CHANNEL = "audio/aac_5point1_channel";
static final String AUDIO_AMR_WB = "audio/amr-wb";
static final String AUDIO_ANY = "audio/*";
@@ -412,7 +413,9 @@ public class SoundRecorder extends Activity
mRequestedType = mSharedPreferences.getString("requestedType", mRequestedType);
mFileType = mSharedPreferences.getInt("fileType", mFileType);
mStoragePath = mSharedPreferences.getString("storagePath", mStoragePath);
- if (!mWAVSupport && mRequestedType == AUDIO_WAVE_2CH_LPCM) {
+ if (!mWAVSupport &&
+ (mRequestedType == AUDIO_WAVE_2CH_LPCM ||
+ mRequestedType == AUDIO_WAVE_1CH_LPCM)) {
mRequestedType = AUDIO_AMR;
mFileType = 0;
}
@@ -796,6 +799,13 @@ public class SoundRecorder extends Activity
mRecordHandler.obtainMessage(START_RECORDING,
MediaRecorder.OutputFormat.WAVE,
MediaRecorder.AudioEncoder.LPCM).sendToTarget();
+ } else if (AUDIO_WAVE_1CH_LPCM.equals(mRequestedType)) {
+ //WAVE LPCM 1-channel recording
+ mRecorder.setChannels(1);
+ mAudioSourceType = MediaRecorder.AudioSource.MIC;
+ mRecordHandler.obtainMessage(START_RECORDING,
+ MediaRecorder.OutputFormat.WAVE,
+ MediaRecorder.AudioEncoder.LPCM).sendToTarget();
} else if (AUDIO_AMR_WB.equals(mRequestedType)) {
mRecordHandler.obtainMessage(START_RECORDING,
MediaRecorder.OutputFormat.AMR_WB,
@@ -904,7 +914,8 @@ public class SoundRecorder extends Activity
mMaxFileSize =mMaxFileSize-40*1024;
break;
case R.string.format_setting_wav_item:
- mRequestedType = AUDIO_WAVE_2CH_LPCM;
+ mRequestedType = getResources().getBoolean(R.bool.record_stereo) ?
+ AUDIO_WAVE_2CH_LPCM : AUDIO_WAVE_1CH_LPCM;
mFileType = 2;
mPrefsStoragePathEditor.putString("requestedType", mRequestedType);
mPrefsStoragePathEditor.putInt("fileType", mFileType);