8000 0.2.0 · adrielcafe/AndroidAudioRecorder@e53c1a9 · GitHub
[go: up one dir, main page]

Skip to content

Commit

Permalink
0.2.0
Browse files Browse the repository at this point in the history
New options:
AutoStart
KeepDisplayOn
  • Loading branch information
adrielcafe committed Sep 28, 2016
1 parent ad1a6bb commit e53c1a9
Show file tree
Hide file tree
Showing 8 changed files with 60 additions and 17 deletions.
6 changes: 4 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

# AndroidAudioRecorder

> A fancy audio recorder for Android. It supports `WAV` format at 48kHz.
> A fancy audio recorder for Android. It supports `WAV` format at `48kHz`.
![Screenshots](https://raw.githubusercontent.com/adrielcafe/AndroidAudioRecorder/master/demo.gif)

Expand Down Expand Up @@ -61,7 +61,7 @@ repositories {
}
dependencies {
compile 'com.github.adrielcafe:AndroidAudioRecorder:0.1.0'
compile 'com.github.adrielcafe:AndroidAudioRecorder:0.2.0'
}
```

Expand All @@ -72,6 +72,8 @@ dependencies {
- [X] Play recorded audio
- [X] Pause recording
- [X] Configure audio source (Mic/Camcorder), channel (Stereo/Mono) and sample rate (8kHz to 48kHz)
- [X] Auto start recording when open activity
- [X] Keep screen on while recording
- [ ] Skip silence
- [ ] Animations
- [ ] Landscape screen orientation (only supports portrait at the moment)
Expand Down
6 changes: 3 additions & 3 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ apply plugin: 'com.android.application'

android {
compileSdkVersion 24
buildToolsVersion "24.0.1"
buildToolsVersion "24.0.2"
defaultConfig {
applicationId "cafe.adriel.androidaudiorecorder.example"
minSdkVersion 15
Expand All @@ -19,9 +19,9 @@ android {
}

dependencies {
compile 'com.android.support:appcompat-v7:24.1.1'
compile 'com.android.support:appcompat-v7:24.2.1'
compile project(':lib')
// compile 'com.github.adrielcafe:AndroidAudioRecorder:0.0.7'
// compile 'com.github.adrielcafe:AndroidAudioRecorder:0.1.0'
}

repositories {
Expand Down
1 change: 1 addition & 0 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@

<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WAKE_LOCK" />

<application
android:label="@string/app_name"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.os.Environment;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Toast;
Expand All @@ -15,8 +16,9 @@
import cafe.adriel.androidaudiorecorder.model.AudioSource;

public class MainActivity extends AppCompatActivity {
private static final String AUDIO_FILE_PATH = Environment.getExternalStorageDirectory() + "/recorded_audio.wav";
private static final int RECORD_AUDIO = 0;
private static final int REQUEST_RECORD_AUDIO = 0;
private static final String AUDIO_FILE_PATH =
Environment.getExternalStorageDirectory().getPath() + "/recorded_audio.wav";

@Override
protected void onCreate(Bundle savedInstanceState) {
Expand All @@ -25,7 +27,7 @@ protected void onCreate(Bundle savedInstanceState) {

if (getSupportActionBar() != null) {
getSupportActionBar().setBackgroundDrawable(
new ColorDrawable(getResources().getColor(R.color.colorPrimaryDark)));
new ColorDrawable(ContextCompat.getColor(this, R.color.colorPrimaryDark)));
}

Util.requestPermission(this, Manifest.permission.RECORD_AUDIO);
Expand All @@ -35,7 +37,7 @@ protected void onCreate(Bundle savedInstanceState) {
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == RECORD_AUDIO) {
if (requestCode == REQUEST_RECORD_AUDIO) {
if (resultCode == RESULT_OK) {
Toast.makeText(this, "Audio recorded successfully!", Toast.LENGTH_SHORT).show();
} else if (resultCode == RESULT_CANCELED) {
Expand All @@ -48,13 +50,15 @@ public void recordAudio(View v) {
AndroidAudioRecorder.with(this)
// Required
.setFilePath(AUDIO_FILE_PATH)
.setColor(getResources().getColor(R.color.recorder_bg))
.setRequestCode(RECORD_AUDIO)
.setColor(ContextCompat.getColor(this, R.color.recorder_bg))
.setRequestCode(REQUEST_RECORD_AUDIO)

// Optional
.setSource(AudioSource.MIC)
.setChannel(AudioChannel.STEREO)
.setSampleRate(AudioSampleRate.HZ_48000)
.setAutoStart(false)
.setKeepDisplayOn(true)

// Start recording
.record();
Expand Down
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ buildscript {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.1.3'
classpath 'com.android.tools.build:gradle:2.2.0'
}
}

Expand Down
2 changes: 1 addition & 1 deletion lib/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ apply plugin: 'com.android.library'

android {
compileSdkVersion 24
buildToolsVersion "24.0.1"
buildToolsVersion "24.0.2"

defaultConfig {
minSdkVersion 15
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@ public class AndroidAudioRecorder {
protected static final String EXTRA_SOURCE = "source";
protected static final String EXTRA_CHANNEL = "channel";
protected static final String EXTRA_SAMPLE_RATE = "sampleRate";
protected static final String EXTRA_AUTO_START = "autoStart";
protected static final String EXTRA_KEEP_DISPLAY_ON = "keepDisplayOn";

private Activity activity;

Expand All @@ -25,6 +27,8 @@ public class AndroidAudioRecorder {
private AudioSampleRate sampleRate = AudioSampleRate.HZ_44100;
private int color = Color.parseColor("#546E7A");
private int requestCode = 0;
private boolean autoStart = false;
private boolean keepDisplayOn = false;

private AndroidAudioRecorder(Activity activity) {
this.activity = activity;
Expand Down Expand Up @@ -64,13 +68,25 @@ public AndroidAudioRecorder setSampleRate(AudioSampleRate sampleRate) {
return this;
}

public AndroidAudioRecorder setAutoStart(boolean autoStart) {
this.autoStart = autoStart;
return this;
}

public AndroidAudioRecorder setKeepDisplayOn(boolean keepDisplayOn) {
this.keepDisplayOn = keepDisplayOn;
return this;
}

public void record() {
Intent intent = new Intent(activity, AudioRecorderActivity.class);
intent.putExtra(EXTRA_FILE_PATH, filePath);
intent.putExtra(EXTRA_COLOR, color);
intent.putExtra(EXTRA_SOURCE, source);
intent.putExtra(EXTRA_CHANNEL, channel);
intent.putExtra(EXTRA_SAMPLE_RATE, sampleRate);
intent.putExtra(EXTRA_AUTO_START, autoStart);
intent.putExtra(EXTRA_KEEP_DISPLAY_ON, keepDisplayOn);
activity.startActivityForResult(intent, requestCode);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,12 @@
import android.graphics.drawable.ColorDrawable;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AppCompatActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.WindowManager;
import android.widget.ImageButton;
import android.widget.RelativeLayout;
import android.widget.TextView;
Expand Down Expand Up @@ -36,6 +38,8 @@ public class AudioRecorderActivity extends AppCompatActivity
private AudioChannel channel;
private AudioSampleRate sampleRate;
private int color;
private boolean autoStart;
private boolean keepDisplayOn;

private MediaPlayer player;
private Recorder recorder;
Expand Down Expand Up @@ -66,12 +70,20 @@ protected void onCreate(Bundle savedInstanceState) {
channel = (AudioChannel) savedInstanceState.getSerializable(AndroidAudioRecorder.EXTRA_CHANNEL);
sampleRate = (AudioSampleRate) savedInstanceState.getSerializable(AndroidAudioRecorder.EXTRA_SAMPLE_RATE);
color = savedInstanceState.getInt(AndroidAudioRecorder.EXTRA_COLOR);
autoStart = savedInstanceState.getBoolean(AndroidAudioRecorder.EXTRA_AUTO_START);
keepDisplayOn = savedInstanceState.getBoolean(AndroidAudioRecorder.EXTRA_KEEP_DISPLAY_ON);
} else {
filePath = getIntent().getStringExtra(AndroidAudioRecorder.EXTRA_FILE_PATH);
source = (AudioSource) getIntent().getSerializableExtra(AndroidAudioRecorder.EXTRA_SOURCE);
channel = (AudioChannel) getIntent().getSerializableExtra(AndroidAudioRecorder.EXTRA_CHANNEL);
sampleRate = (AudioSampleRate) getIntent().getSerializableExtra(AndroidAudioRecorder.EXTRA_SAMPLE_RATE);
color = getIntent().getIntExtra(AndroidAudioRecorder.EXTRA_COLOR, Color.BLACK);
autoStart = getIntent().getBooleanExtra(AndroidAudioRecorder.EXTRA_AUTO_START, false);
keepDisplayOn = getIntent().getBooleanExtra(AndroidAudioRecorder.EXTRA_KEEP_DISPLAY_ON, false);
}

if(keepDisplayOn){
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}

if (getSupportActionBar() != null) {
Expand All @@ -82,7 +94,7 @@ protected void onCreate(Bundle savedInstanceState) {
getSupportActionBar().setBackgroundDrawable(
new ColorDrawable(Util.getDarkerColor(color)));
getSupportActionBar().setHomeAsUpIndicator(
getResources().getDrawable(R.drawable.aar_ic_clear));
ContextCompat.getDrawable(this, R.drawable.aar_ic_clear));
}

visualizerView = new GLAudioVisualizationView.Builder(this)
Expand Down Expand Up @@ -110,9 +122,9 @@ protected void onCreate(Bundle savedInstanceState) {
playView.setVisibility(View.INVISIBLE);

if(Util.isBrightColor(color)) {
getResources().getDrawable(R.drawable.aar_ic_clear)
ContextCompat.getDrawable(this, R.drawable.aar_ic_clear)
.setColorFilter(Color.BLACK, PorterDuff.Mode.SRC_ATOP);
getResources().getDrawable(R.drawable.aar_ic_check)
ContextCompat.getDrawable(this, R.drawable.aar_ic_check)
.setColorFilter(Color.BLACK, PorterDuff.Mode.SRC_ATOP);
statusView.setTextColor(Color.BLACK);
timerView.setTextColor(Color.BLACK);
Expand All @@ -122,6 +134,14 @@ protected void onCreate(Bundle savedInstanceState) {
}
}

@Override
public void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
if(autoStart && !isRecording){
toggleRecording(null);
}
}

@Override
public void onResume() {
super.onResume();
Expand Down Expand Up @@ -160,7 +180,7 @@ protected void onSaveInstanceState(Bundle outState) {
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.aar_audio_recorder, menu);
saveMenuItem = menu.findItem(R.id.action_save);
saveMenuItem.setIcon(getResources().getDrawable(R.drawable.aar_ic_check));
saveMenuItem.setIcon(ContextCompat.getDrawable(this, R.drawable.aar_ic_check));
return super.onCreateOptionsMenu(menu);
}

Expand Down

0 comments on commit e53c1a9

Please sign in to comment.
0