Skip to content

Commit 866ee24

Browse files
committed
0.0.2
Fluent API
1 parent 4ecf61c commit 866ee24

File tree

3 files changed

+73
-30
lines changed

3 files changed

+73
-30
lines changed

README.md

Lines changed: 20 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -42,20 +42,25 @@ public class App extends Application {
4242

4343
3 - Convert audio files async
4444
```java
45-
File wavFile = new File(Environment.getExternalStorageDirectory(), "my_audio.wav");
46-
AndroidAudioConverter.convert(this,
47-
wavFile, // Your current audio file
48-
AndroidAudioConverter.AudioFormat.AAC, // Your desired audio format
49-
new IConvertCallback() {
50-
@Override
51-
public void onSuccess(File convertedFile) {
52-
// So fast? Love it!
53-
}
54-
@Override
55-
public void onFailure(Exception error) {
56-
// Oops! Something went wrong
57-
}
58-
});
45+
File wavFile = new File(Environment.getExternalStorageDirectory(), "my_audio.flac");
46+
IConvertCallback callback = new IConvertCallback() {
47+
@Override
48+
public void onSuccess(File convertedFile) {
49+
// So fast? Love it!
50+
}
51+
@Override
52+
public void onFailure(Exception error) {
53+
// Oops! Something went wrong
54+
}
55+
};
56+
AndroidAudioConverter.with(this)
57+
// Your current audio file
58+
.setFile(wavFile)
59+
// Your desired audio format
60+
.setFormat(AndroidAudioConverter.AudioFormat.MP3)
61+
// An callback to know when conversion is finished
62+
.setCallback(callback)
63+
.convert();
5964
```
6065

6166
## Import to your project
@@ -68,7 +73,7 @@ repositories {
6873
}
6974
7075
dependencies {
71-
compile 'com.github.adrielcafe:AndroidAudioConverter:0.0.1'
76+
compile 'com.github.adrielcafe:AndroidAudioConverter:0.0.2'
7277
}
7378
```
7479

app/src/main/java/cafe/adriel/androidaudioconverter/sample/MainActivity.java

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import android.os.Bundle;
44
import android.os.Environment;
5+
import android.os.Handler;
56
import android.support.v7.app.AppCompatActivity;
67
import android.util.Log;
78

@@ -17,23 +18,36 @@ protected void onCreate(Bundle savedInstanceState) {
1718
super.onCreate(savedInstanceState);
1819
setContentView(R.layout.activity_main);
1920

21+
// Giving time to lib load
22+
new Handler().postDelayed(new Runnable() {
23+
@Override
24+
public void run() {
25+
convertAudio();
26+
}
27+
}, 2000);
28+
}
29+
30+
private void convertAudio(){
2031
/**
2132
* Update with a valid audio file!
2233
* Supported formats: {@link AndroidAudioConverter.AudioFormat}
2334
*/
24-
File wavFile = new File(Environment.getExternalStorageDirectory(), "my_audio.wav");
25-
26-
AndroidAudioConverter.convert(this, wavFile, AndroidAudioConverter.AudioFormat.AAC, new IConvertCallback() {
35+
File wavFile = new File(Environment.getExternalStorageDirectory(), "recorded_audio.wav");
36+
IConvertCallback callback = new IConvertCallback() {
2737
@Override
2838
public void onSuccess(File convertedFile) {
2939
Log.d("SUCCESS", convertedFile.getPath());
3040
}
31-
3241
@Override
3342
public void onFailure(Exception error) {
3443
error.printStackTrace();
3544
}
36-
});
45+
};
46+
AndroidAudioConverter.with(this)
47+
.setFile(wavFile)
48+
.setFormat(AndroidAudioConverter.AudioFormat.MP3)
49+
.setCallback(callback)
50+
.convert();
3751
}
3852

3953
}

lib/src/main/java/cafe/adriel/androidaudiorecorder/AndroidAudioConverter.java

Lines changed: 34 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,19 @@ public String toString() {
3030
}
3131
}
3232

33+
private Context context;
34+
private File audioFile;
35+
private AudioFormat format;
36+
private IConvertCallback callback;
37+
3338
private static boolean load;
3439

35-
private AndroidAudioConverter(){
40+
private AndroidAudioConverter(Context context){
41+
this.context = context;
42+
}
3643

44+
public static boolean isLoad(){
45+
return load;
3746
}
3847

3948
public static void load(Context context, final IInitCallback callback){
@@ -68,21 +77,40 @@ public void onFinish() {
6877
}
6978
}
7079

71-
public static void convert(Context context, File originalFile, AudioFormat format, final IConvertCallback callback) {
80+
public static AndroidAudioConverter with(Context context) {
81+
return new AndroidAudioConverter(context);
82+
}
83+
84+
public AndroidAudioConverter setFile(File originalFile) {
85+
this.audioFile = originalFile;
86+
return this;
87+
}
88+
89+
public AndroidAudioConverter setFormat(AudioFormat format) {
90+
this.format = format;
91+
return this;
92+
}
93+
94+
public AndroidAudioConverter setCallback(IConvertCallback callback) {
95+
this.callback = callback;
96+
return this;
97+
}
98+
99+
public void convert() {
72100
if(!isLoad()){
73101
callback.onFailure(new Exception("FFmpeg not loaded"));
74102
return;
75103
}
76-
if(originalFile == null || !originalFile.exists()){
104+
if(audioFile == null || !audioFile.exists()){
77105
callback.onFailure(new IOException("File not exists"));
78106
return;
79107
}
80-
if(!originalFile.canRead()){
108+
if(!audioFile.canRead()){
81109
callback.onFailure(new IOException("Can't read the file. Missing permission?"));
82110
return;
83111
}
84-
final File convertedFile = getConvertedFile(originalFile, format);
85-
String[] cmd = new String[]{"-y", "-i", originalFile.getPath(), convertedFile.getPath()};
112+
final File convertedFile = getConvertedFile(audioFile, format);
113+
String[] cmd = new String[]{"-y", "-i", audioFile.getPath(), convertedFile.getPath()};
86114
try {
87115
FFmpeg.getInstance(context)
88116
.execute(cmd, new FFmpegExecuteResponseHandler() {
@@ -116,10 +144,6 @@ public void onFinish() {
116144
}
117145
}
118146

119-
public static boolean isLoad(){
120-
return load;
121-
}
122-
123147
private static File getConvertedFile(File originalFile, AudioFormat format){
124148
String[] f = originalFile.getPath().split("\\.");
125149
String filePath = originalFile.getPath().replace("." + f[f.length - 1], "." + format);

0 commit comments

Comments
 (0)