diff --git a/app/src/main/java/app/myzel394/alibi/helpers/AudioBatchesFolder.kt b/app/src/main/java/app/myzel394/alibi/helpers/AudioBatchesFolder.kt index da87eb7..b814c0f 100644 --- a/app/src/main/java/app/myzel394/alibi/helpers/AudioBatchesFolder.kt +++ b/app/src/main/java/app/myzel394/alibi/helpers/AudioBatchesFolder.kt @@ -32,13 +32,17 @@ class AudioBatchesFolder( ): String { return when (type) { BatchType.INTERNAL -> asInternalGetOutputFile(date, extension).absolutePath - BatchType.CUSTOM -> FFmpegKitConfig.getSafParameterForWrite( - context, - customFolder!!.createFile( - "audio/${extension}", - getName(date, extension), - )!!.uri - )!! + BatchType.CUSTOM -> { + val name = getName(date, extension) + + FFmpegKitConfig.getSafParameterForWrite( + context, + (customFolder!!.findFile(name) ?: customFolder.createFile( + "audio/${extension}", + getName(date, extension), + )!!).uri + )!! + } } } diff --git a/app/src/main/java/app/myzel394/alibi/helpers/MediaConverter.kt b/app/src/main/java/app/myzel394/alibi/helpers/MediaConverter.kt index b438bc4..1f851f3 100644 --- a/app/src/main/java/app/myzel394/alibi/helpers/MediaConverter.kt +++ b/app/src/main/java/app/myzel394/alibi/helpers/MediaConverter.kt @@ -1,8 +1,11 @@ package app.myzel394.alibi.helpers import android.content.Context +import android.net.Uri import android.util.Log +import androidx.documentfile.provider.DocumentFile import com.arthenica.ffmpegkit.FFmpegKit +import com.arthenica.ffmpegkit.FFmpegKitConfig import com.arthenica.ffmpegkit.ReturnCode import kotlinx.coroutines.CompletableDeferred import java.io.File @@ -66,7 +69,8 @@ class MediaConverter { val listFile = createTempFile(inputFiles.joinToString("\n") { "file '$it'" }) val command = - " -f concat" + + "-protocol_whitelist saf,concat,content,file,subfile" + + " -f concat" + " -safe 0" + " -i ${listFile.absolutePath}" + extraCommand + @@ -78,7 +82,6 @@ class MediaConverter { command ) { session -> runCatching { - listFile.delete() } if (!ReturnCode.isSuccess(session!!.returnCode)) { diff --git a/app/src/main/java/app/myzel394/alibi/helpers/VideoBatchesFolder.kt b/app/src/main/java/app/myzel394/alibi/helpers/VideoBatchesFolder.kt index d60e47b..8c69369 100644 --- a/app/src/main/java/app/myzel394/alibi/helpers/VideoBatchesFolder.kt +++ b/app/src/main/java/app/myzel394/alibi/helpers/VideoBatchesFolder.kt @@ -28,13 +28,17 @@ class VideoBatchesFolder( override fun getOutputFileForFFmpeg(date: LocalDateTime, extension: String): String { return when (type) { BatchType.INTERNAL -> asInternalGetOutputFile(date, extension).absolutePath - BatchType.CUSTOM -> FFmpegKitConfig.getSafParameterForWrite( - context, - customFolder!!.createFile( - "video/${extension}", - getName(date, extension), - )!!.uri - )!! + BatchType.CUSTOM -> { + val name = getName(date, extension) + + FFmpegKitConfig.getSafParameterForWrite( + context, + (customFolder!!.findFile(name) ?: customFolder.createFile( + "video/${extension}", + getName(date, extension), + )!!).uri + )!! + } } }