私は、フォルダ内の定義されたタイプのオーディオファイルをチェックし、コンバータを呼び出してそのフォーマットを変更するコードを持っています。現在、最初のファイルが渡されると、converterが呼び出され、ファイルは変換の途中であるため、2番目のファイルに対して再度converterというループが実行されます。これで私は以前の/後のプロセスが終了したので、出力として変換されたファイルしか得られないと感じました。コードはこちらです。どのように私はすべてのファイルconveretedを取得することができます。呼び出されたメソッドが完了するまでループ待機します
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();
}
}
uはそこ変換に対する成功メッセージがあると私は一つだけのファイルを渡すと、私は成功メッセージを得たのに対し、私はループのために、この下をやったことがなかった表示された場合。 plsアドバイス。
複数のファイルをサポートしたり、いくつかのセマフォを行うには、ライブラリの作成者に問い合わせてください(基本的なmultithreinding同期コンセプト:それは、この(Javaは少し錆びている、あなたは構文をクリーンアップする必要があるかもしれません)のようなものを見てね)これは 'convert()'呼び出しが前の仕事を終わらせることを許さないでしょう – Selvin
人々はサポートの代わりに初心者の質問をダウングレードすることに熱心です。私は今ここに尋ねることを恐れている。 –
人は研究する前に尋ねるのがとても怠惰です... – Selvin