Android アプリで ZipOutputStream を使用して、mp3 ファイルをパッケージ化およびエクスポートしています。パッケージとエクスポートは正常に機能しているように見えますが、ファイルを抽出すると再生できません。file
出力に対してコマンドを実行すると、ファイルの種類が として表示されdata
ます。圧縮する前に、ファイルの種類はAudio
. ファイルを圧縮するために使用しているコードは次のとおりです。
protected File compressFiles(File outputFile, File... inputFiles) {
int bufferSize = 1024 * 4; // 4KB
ZipOutputStream zipOutputStream = null;
try {
OutputStream fileOutputStream = new FileOutputStream(outputFile);
zipOutputStream = new ZipOutputStream(new BufferedOutputStream(fileOutputStream));
int count = inputFiles.length;
File file = null;
for (int i = 0; i < inputFiles.length; i++) {
file = inputFiles[i];
String fileName = file.getName();
ZipEntry entry = new ZipEntry(fileName);
entry.setTime(file.lastModified());
FileInputStream inputStream = new FileInputStream(file);
BufferedInputStream bufferedInputStream = new BufferedInputStream(inputStream);
zipOutputStream.putNextEntry(entry);
byte[] buffer = new byte[bufferSize];
int bytesRead;
while ((bytesRead = bufferedInputStream.read()) != -1) {
zipOutputStream.write(buffer, 0, bytesRead);
}
zipOutputStream.closeEntry();
inputStream.close();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (zipOutputStream != null) {
try {
zipOutputStream.finish();
// zipOutputStream.flush();
zipOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return outputFile;
}