diff --git a/android-aac-enc/src/com/todoroo/aacenc/AACRecorder.java b/android-aac-enc/src/com/todoroo/aacenc/AACRecorder.java index 6a91caca8..b7ac2a27d 100644 --- a/android-aac-enc/src/com/todoroo/aacenc/AACRecorder.java +++ b/android-aac-enc/src/com/todoroo/aacenc/AACRecorder.java @@ -8,12 +8,19 @@ import android.media.AudioFormat; import android.media.AudioRecord; import android.media.MediaRecorder.AudioSource; +/** + * This class combines an Android AudioRecord and our own AACEncoder + * to directly record an AAC audio file from the mic. Users should call + * startRecording() and stopRecording() in sequence, and then listen + * for the encodingFinished() callback to perform final actions like + * converting to M4A format. + * @author Sam + * + */ public class AACRecorder { private AudioRecord audioRecord; private AACEncoder encoder; - private Context context; - private String tempFile; private boolean recording; private AACRecorderCallbacks listener; @@ -34,7 +41,6 @@ public class AACRecorder { int bytesRead = 0; while(recording) { bytesRead = audioRecord.read(readBuffer, 0, readBuffer.length); - System.err.println("Bytes read: " + bytesRead); try { baos.write(readBuffer); } catch (IOException e) { @@ -50,7 +56,7 @@ public class AACRecorder { }; - public AACRecorder(Context context) { + public AACRecorder() { encoder = new AACEncoder(); } @@ -58,7 +64,6 @@ public class AACRecorder { if (recording) return; - this.tempFile = tempFile; audioRecord = new AudioRecord(AudioSource.MIC, SAMPLE_RATE, AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT, MIN_BUFFER_SIZE); @@ -83,7 +88,6 @@ public class AACRecorder { public synchronized void finishRecording() { recording = false; audioRecord.release(); - System.err.println("Uninit"); encoder.uninit(); if (listener != null) listener.encodingFinished(); @@ -93,17 +97,4 @@ public class AACRecorder { this.listener = listener; } - public synchronized boolean convert(String outFile) { - if (recording || tempFile == null) - return false; - - try { - new AACToM4A().convert(context, tempFile, outFile); - tempFile = null; - return true; - } catch (IOException e) { - return false; - } - } - } diff --git a/astrid/plugin-src/com/todoroo/astrid/files/AACRecordingActivity.java b/astrid/plugin-src/com/todoroo/astrid/files/AACRecordingActivity.java index 03672cc1b..97fa0a0d3 100644 --- a/astrid/plugin-src/com/todoroo/astrid/files/AACRecordingActivity.java +++ b/astrid/plugin-src/com/todoroo/astrid/files/AACRecordingActivity.java @@ -42,7 +42,7 @@ public class AACRecordingActivity extends Activity implements AACRecorderCallbac tempFile = getIntent().getStringExtra(EXTRA_TEMP_FILE); taskId = getIntent().getLongExtra(EXTRA_TASK_ID, 0L); - recorder = new AACRecorder(this); + recorder = new AACRecorder(); recorder.setListener(this); recorder.startRecording(tempFile); } @@ -71,15 +71,15 @@ public class AACRecordingActivity extends Activity implements AACRecorderCallbac speechBubble.setText(R.string.audio_speak_now); } - @SuppressWarnings("nls") private void stopRecording() { recorder.stopRecording(); - pd = DialogUtilities.progressDialog(this, "Encoding..."); + pd = DialogUtilities.progressDialog(this, getString(R.string.audio_err_encoding)); pd.show(); } @SuppressWarnings("nls") + @Override public void encodingFinished() { try { StringBuilder filePathBuilder = new StringBuilder(); @@ -99,7 +99,7 @@ public class AACRecordingActivity extends Activity implements AACRecorderCallbac finish(); } catch (IOException e) { e.printStackTrace(); - Toast.makeText(this, "Error :(", Toast.LENGTH_LONG); + Toast.makeText(this, R.string.audio_err_encoding, Toast.LENGTH_LONG); } pd.dismiss(); } diff --git a/astrid/res/values/strings-premium.xml b/astrid/res/values/strings-premium.xml index 3529abb2b..456bbdf62 100644 --- a/astrid/res/values/strings-premium.xml +++ b/astrid/res/values/strings-premium.xml @@ -12,4 +12,6 @@ Recording Audio Stop Recording Speak Now! + Encoding... + Error encoding audio