From b4e9a3e909917a788a6490905a5a4695de35aefa Mon Sep 17 00:00:00 2001 From: stormbirds Date: Tue, 29 Jan 2019 09:14:25 +0800 Subject: [PATCH] =?UTF-8?q?Fixed=20path=20error=20that=20can=20be=20caused?= =?UTF-8?q?=20by=20replacing=20a=20string=EF=BC=8C=20For=20example:=20/sdc?= =?UTF-8?q?ard/wav/test.wav=20conversion=20format=20m4a=20will=20be=20conv?= =?UTF-8?q?erted=20to=20/sdcard/m4a/test.m4a?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AndroidAudioConverter.java | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/lib/src/main/java/cafe/adriel/androidaudioconverter/AndroidAudioConverter.java b/lib/src/main/java/cafe/adriel/androidaudioconverter/AndroidAudioConverter.java index 95bf226..005c211 100644 --- a/lib/src/main/java/cafe/adriel/androidaudioconverter/AndroidAudioConverter.java +++ b/lib/src/main/java/cafe/adriel/androidaudioconverter/AndroidAudioConverter.java @@ -129,7 +129,26 @@ public void onFinish() { private static File getConvertedFile(File originalFile, AudioFormat format){ String[] f = originalFile.getPath().split("\\."); - String filePath = originalFile.getPath().replace(f[f.length - 1], format.getFormat()); + f[f.length - 1] = format.getFormat(); + String filePath = join(f,'.',0,f.length); return new File(filePath); } + + private static String join(final String[] array, final char separator, final int startIndex, final int endIndex) { + if (array == null) { + return null; + } + final int noOfItems = endIndex - startIndex; + if (noOfItems <= 0) { + return ""; + } + final StringBuilder buf = new StringBuilder(); + for (int i = startIndex; i < endIndex; i++) { + if (i > startIndex) { + buf.append(separator); + } + buf.append(array[i]); + } + return buf.toString(); + } } \ No newline at end of file