我有一個代碼,它正在檢查文件夾中定義的類型的音頻文件並調用轉換器來更改其格式。現在當第一個文件通過時,轉換器被調用,並且當文件正在轉換過程中,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