//废话不多说直接上代码
//github地址
compile ‘com.github.adrielcafe:AndroidAudioConverter:0.0.8’
//需要在 Application 中初始化
public class Myapplication extends Application {
@Override
public void onCreate() {
super.onCreate();
AndroidAudioConverter.load(this, new ILoadCallback() {
@Override
public void onSuccess() {
// Great!
}
@Override
public void onFailure(Exception error) {
// FFmpeg is not supported by device
}
});
}
//这是录音完成的回调,文件后缀flac使用AndroidAudioConverterUtils工具类进行转换
//这是Activity的回调
@Override
public void onFinishedRecord(String audioPath, String time) {
File file = new File(audioPath);
timeese = time;
addview.setVisibility(View.VISIBLE);
down.setVisibility(View.GONE);
timees.setText(time);
/**
* 转换格式
*/
setAndroidAudioConverterUtils(this,file,this);
}
public void setAndroidAudioConverterUtils(AndroidAudioConverterUtils.AndroidAudioConverterUrl androidAudioConverterUtils, File file,Context context){
AndroidAudioConverterUtils
.getAndroidAudioConverter()
.setContext(context)
.setAndroidAudioConverterUrl(androidAudioConverterUtils)
.setUrl(file)
.start();
}
//转换音频文件工具类
public class AndroidAudioConverterUtils {
private static AndroidAudioConverterUtils androidAudioConverterUtils;
private File originalUrl;
private String url;
private Context context;
private AndroidAudioConverterUrl activity;
public AndroidAudioConverterUtils() {
}
public static AndroidAudioConverterUtils getAndroidAudioConverter() {
if (androidAudioConverterUtils == null) {
synchronized (AndroidAudioConverterUtils.class) {
if (androidAudioConverterUtils == null) {
androidAudioConverterUtils = new AndroidAudioConverterUtils();
}
}
}
return androidAudioConverterUtils;
}
public AndroidAudioConverterUtils setContext(Context context) {
this.context = context;
return this;
}
public AndroidAudioConverterUtils setAndroidAudioConverterUrl(AndroidAudioConverterUrl activity) {
this.activity = activity;
return this;
}
/**
* 原始的url
*/
public AndroidAudioConverterUtils setUrl(File originalUrl) {
this.originalUrl = originalUrl;
return this;
}
/**
* 开始转换
*/
public void start() {
AndroidAudioConverter.with(context)
// Your current audio file
.setFile(originalUrl)
// Your desired audio format
.setFormat(AudioFormat.MP3)
// An callback to know when conversion is finished
.setCallback(callback)
// Start conversion
.convert();
}
IConvertCallback callback = new IConvertCallback() {
@Override
public void onSuccess(File convertedFile) {
url = convertedFile.getAbsolutePath();
activity.setUrls(url);
}
@Override
public void onFailure(Exception error) {
}
};
public interface AndroidAudioConverterUrl{
void setUrls(String urls);
}
}