我有一个代码,它正在检查文件夹中定义的类型的音频文件并调用转换器来更改其格式。现在当第一个文件通过时,转换器被调用,并且当文件正在转换过程中,for循环再次调用转换器作为第二个文件。在这个我感觉早/晚过程终止,因此我只获得文件转换为输出。代码在这里。我如何设法让所有文件传输。For循环等待完成调用的方法
public void convertAudio(View v) {
final File pathanme = new File(Environment.getExternalStorageDirectory() + "/sdcard/test");
File files[] = pathanme.listFiles();
for (File f : files) {
if (f.getName().endsWith(".mp4")) {
String filename = f.getName().toLowerCase().toString();
System.out.println(filename);
File wavFile = new File(pathanme, filename);
IConvertCallback callback = new IConvertCallback() {
@Override
public void onSuccess(File convertedFile) {
Toast.makeText(NewMainActivity.this, "SUCCESS: " + convertedFile.getPath(), Toast.LENGTH_LONG).show();
}
@Override
public void onFailure(Exception error) {
Toast.makeText(NewMainActivity.this, "ERROR: " + error.getMessage(), Toast.LENGTH_LONG).show();
}
};
Toast.makeText(this, "Converting audio file..." + filename, Toast.LENGTH_SHORT).show();
AndroidAudioConverter.with(this)
.setFile(wavFile)
.setFormat(AudioFormat.MP3)
.setCallback(callback)
.convert();
}
}
如果你发现有抗转换成功的消息,我从来没有这种下循环,而如果我通过只有一个文件,我得到了成功的消息。请咨询。
请联络库的作者,以支持多个文件或做一些信号量(基本multithreinding同步概念)如果没有完成之前的工作,将不允许'convert()'调用 – Selvin
人们非常渴望降级初学者的问题而不是支持。我现在不敢问这里。 –
人们都懒得问以前做一些研究...... – Selvin