Skip to content

Commit

Permalink
made some fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
hikikomoriphoenix committed Mar 7, 2018
1 parent 19b4a6d commit a1f1f5c
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 55 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,6 @@ public final class AudioSpyFragment extends Fragment implements View.OnTouchList
private ByteBuffer audioBuffer;
private int readBufferSize;
boolean isRecording = false;
private Thread recordingThread;
private ThreadGroup encoderThreads;
private int whenToConvertAudioId;

Expand Down Expand Up @@ -284,62 +283,60 @@ public boolean onDoubleTap(MotionEvent motionEvent) {
if(AutomaticGainControl.isAvailable()) AutomaticGainControl.create(audioSessionId).setEnabled(true);*/
audioRec.startRecording();

recordingThread = new Thread(new Runnable() {
Thread recordingThread = new Thread(new Runnable() {
@Override
public void run() {
try {
recordFilenameBase = String.valueOf(System.currentTimeMillis());
File saveDir = new File(Environment.getExternalStorageDirectory(), "LM AudioSpy");
saveDirectory = prefs.getString("save_directory", saveDir.getAbsolutePath());
if(!AudioSpy.createValidFile(saveDirectory)){
if (!AudioSpy.createValidFile(saveDirectory)) {
isRecording = false;
PopUpText.show("Failed to create directory", main.getApplicationContext());
getFragmentManager().popBackStack();
return;
}
if(saveToWAV) {
if (saveToWAV) {
File audioFile = new File(saveDirectory, recordFilenameBase + ".wav");
audioOut = new FileOutputStream(audioFile);
fileChannel = audioOut.getChannel();

AudioProcessingTools.writeWavHeader(fileChannel, channelConfig, sampleRate, encodingFormat);
}

if(saveToM4A) {
if (saveToM4A) {
bytesOut = new ByteArrayOutputStream();
if(whenToConvertAudioId == R.id.afterRecording){
if (whenToConvertAudioId == R.id.afterRecording) {
writeChannel = Channels.newChannel(bytesOut);
}
else if(whenToConvertAudioId == R.id.whileRecording){
} else if (whenToConvertAudioId == R.id.whileRecording) {
AudioProcessingTools.initAudioConversion(saveDirectory, recordFilenameBase);
}
}

while (isRecording) {
if(audioRec==null) {
if (audioRec == null) {
audioRec = new AudioRecord(MediaRecorder.AudioSource.MIC, sampleRate, channelConfig, encodingFormat, readBufferSize);
audioRec.startRecording();
}
audioBuffer = ByteBuffer.allocateDirect(readBufferSize);
audioBuffer.order(ByteOrder.LITTLE_ENDIAN);
AudioProcessingTools.MaxAmplitude maxAmplitude = new AudioProcessingTools.MaxAmplitude(0);
AudioProcessingTools.readAudioApplyGain(audioBuffer, audioRec, readBufferSize, gain, maxAmplitude);
if(saveToWAV) fileChannel.write(audioBuffer);
if(saveToM4A) {
if (saveToWAV) fileChannel.write(audioBuffer);
if (saveToM4A) {
audioBuffer.rewind();
if(whenToConvertAudioId == R.id.afterRecording) {
if (whenToConvertAudioId == R.id.afterRecording) {
writeChannel.write(audioBuffer);
}
else if(whenToConvertAudioId == R.id.whileRecording){
} else if (whenToConvertAudioId == R.id.whileRecording) {
AudioProcessingTools.addData(audioBuffer);
}
}
}
if(saveToWAV) {
if (saveToWAV) {
fileChannel.close();
updateLog("\nAudio successfully recorded and saved as "+ recordFilenameBase + ".wav");
updateLog("\nAudio successfully recorded and saved as " + recordFilenameBase + ".wav");
}
if(saveToM4A) {
if (saveToM4A) {
if (whenToConvertAudioId == R.id.whileRecording) {
AudioProcessingTools.notifyRecordingEnded();
}
Expand Down Expand Up @@ -374,8 +371,8 @@ void onFinished() {
}
}

}catch(IOException e){
Log.e(LOG,"IOException in recordingThread", e);
} catch (IOException e) {
Log.e(LOG, "IOException in recordingThread", e);
isRecording = false;
}
}
Expand Down Expand Up @@ -404,16 +401,6 @@ public boolean onDoubleTapEvent(MotionEvent motionEvent) {
return false;
}

@Override
public void onStop(){
recordingThread = null;
if(AudioProcessingTools.codec != null) {
AudioProcessingTools.codec.release();
AudioProcessingTools.codec = null;
}
super.onStop();
}

private void updateLog(final String message){
main.runOnUiThread(new Runnable() {
@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,6 @@ public class StartRecordingFragment extends Fragment implements View.OnClickList
private int readBufferSize;
private ByteBuffer audioBuffer;
private boolean isRecording = false;
private Thread recordingThread;
private int whenToConvertAudioId;

//IO-specific fields
Expand Down Expand Up @@ -178,30 +177,29 @@ record = new AudioRecord(MediaRecorder.AudioSource.MIC, sampleRate, channelConfi
else headerText = recordFilenameBase + ".m4a";
header.setText(headerText);

recordingThread = new Thread(new Runnable() {
Thread recordingThread = new Thread(new Runnable() {
@Override
public void run() {
try {
File saveDir = new File(Environment.getExternalStorageDirectory(), "LM AudioSpy");
saveDirectory = prefs.getString("save_directory", saveDir.getAbsolutePath());
if(!AudioSpy.createValidFile(saveDirectory)){
if (!AudioSpy.createValidFile(saveDirectory)) {
isRecording = false;
PopUpText.show("Failed to create directory", getActivity().getApplicationContext());
getFragmentManager().popBackStack();
return;
}
if(saveToWAV) {
if (saveToWAV) {
File audioFile = new File(saveDirectory, recordFilenameBase + ".wav");
audioOut = new FileOutputStream(audioFile);
fileChannel = audioOut.getChannel();
AudioProcessingTools.writeWavHeader(fileChannel, channelConfig, sampleRate, encodingFormat);
}
if(saveToM4A) {
if (saveToM4A) {
bytesOut = new ByteArrayOutputStream();
if(whenToConvertAudioId == R.id.afterRecording){
if (whenToConvertAudioId == R.id.afterRecording) {
writeChannel = Channels.newChannel(bytesOut);
}
else if(whenToConvertAudioId == R.id.whileRecording){
} else if (whenToConvertAudioId == R.id.whileRecording) {
AudioProcessingTools.initAudioConversion(saveDirectory, recordFilenameBase);
}
}
Expand Down Expand Up @@ -244,35 +242,33 @@ public void run() {
graphUpdate.run();

while (isRecording) {
if(record==null){
if (record == null) {
record = new AudioRecord(MediaRecorder.AudioSource.MIC, sampleRate, channelConfig, encodingFormat, readBufferSize);
record.startRecording();
}
audioBuffer = ByteBuffer.allocateDirect(readBufferSize);
audioBuffer.order(ByteOrder.LITTLE_ENDIAN);
AudioProcessingTools.readAudioApplyGain(audioBuffer, record, readBufferSize, gain, maxAmplitude);
if(saveToWAV) fileChannel.write(audioBuffer);
if(saveToM4A) {
if (saveToWAV) fileChannel.write(audioBuffer);
if (saveToM4A) {
audioBuffer.rewind();
if(whenToConvertAudioId == R.id.afterRecording) {
if (whenToConvertAudioId == R.id.afterRecording) {
writeChannel.write(audioBuffer);
}
else if(whenToConvertAudioId == R.id.whileRecording){
} else if (whenToConvertAudioId == R.id.whileRecording) {
AudioProcessingTools.addData(audioBuffer);
}
}
}
record.stop();
record.release();
if(saveToWAV) {
if (saveToWAV) {
fileChannel.close();
Log.i(LOG, "Raw Audio is successfully saved as wav file.");
}
if(saveToM4A) {
if(whenToConvertAudioId == R.id.afterRecording) {
if (saveToM4A) {
if (whenToConvertAudioId == R.id.afterRecording) {
writeChannel.close();
}
else if(whenToConvertAudioId == R.id.whileRecording){
} else if (whenToConvertAudioId == R.id.whileRecording) {
AudioProcessingTools.notifyRecordingEnded();
}
}
Expand All @@ -281,7 +277,7 @@ else if(whenToConvertAudioId == R.id.whileRecording){
mainHandler.removeCallbacks(graphUpdate);

Bundle data = new Bundle();
if(saveToM4A) data.putByteArray("audio data", bytesOut.toByteArray());
if (saveToM4A) data.putByteArray("audio data", bytesOut.toByteArray());
data.putString("name", recordFilenameBase);
postRecordingFragment.setArguments(data);
FragmentManager fragmentManager = getFragmentManager();
Expand All @@ -299,12 +295,6 @@ else if(whenToConvertAudioId == R.id.whileRecording){
super.onViewCreated(view, savedInstanceState);
}

@Override
public void onStop() {
recordingThread = null;
super.onStop();
}

@Override
public void onClick(View v) {
if(v == stopButton){
Expand Down

0 comments on commit a1f1f5c

Please sign in to comment.