Опитвам се да създам прост рекордер, който дава на потребителя функционалност „пауза“ и „възобновяване“.
Тъй като Android не поддържа това директно, създавам отделни файлове всеки път, когато потребителят натисне „Пауза“ и „Възобновяване“ с наставките _1, _2 и т.н.
Използвам кода по-долу, за да ги свържа
public void mergeAllAndSave() {
// TODO Auto-generated method stub
Enumeration<FileInputStream> allRecordings;
Vector<FileInputStream> audiofiles = new Vector<FileInputStream>();
for (int i = 1; i < count+1; i++) {
try {
audiofiles.add(new FileInputStream(Environment.getExternalStorageDirectory().getPath() + "/"+ AUDIO_RECORDER_FOLDER + "/" + _filename + "_"+ i + file_exts[currentFormat]));
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
allRecordings = audiofiles.elements();
SequenceInputStream siStream = new SequenceInputStream(allRecordings);
try {
FileOutputStream foStream = new FileOutputStream(Environment.getExternalStorageDirectory().getPath() + "/"+ AUDIO_RECORDER_FOLDER + "/" + _filename + file_exts[currentFormat]);
int temp;
while ((temp = siStream.read() ) != -1) {
foStream.write(temp);
}
foStream.close();
siStream.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
Кодът работи добре. Дава ми един файл. Той обаче съдържа съдържанието само на първия файл. Logcat не показва никакви грешки.
Някой с идеи каква е грешката, която правя?
Благодаря.