diff options
author | Ed Falk <efalk@cyngn.com> | 2015-08-06 16:48:38 -0700 |
---|---|---|
committer | Edward A. Falk <efalk@cyngn.com> | 2015-08-12 15:48:26 -0700 |
commit | debb1f21145dba692ff36d681b11c7e7f691465d (patch) | |
tree | ba2eb7e6c2ece8ed4026e1cdb21a916ab2237562 | |
parent | 20992826827c359ee42a8f8fd42e576f4b4be661 (diff) | |
download | android_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.xml | 4 | ||||
-rw-r--r-- | src/com/android/soundrecorder/SoundRecorder.java | 15 |
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); |