Обрезка звука с флаттером

#flutter #dart #audio #ffmpeg #trim

#трепетание #дротик #Аудио #ffmpeg #обрезка

Вопрос:

Я обрезаю звук. Используя следующий код.
Я нахожу код в https://pub.dev/packages/audiocutter посылка.
Но не удается сгенерировать выходной файл.

 import 'package:path_provider/path_provider.dart';
import 'package:ffmpeg_kit_flutter/ffmpeg_kit.dart';

static Future<String> cutAudio(String path, double start, double end) async {
    
    final Directory dir = await getTemporaryDirectory();
    final outPath = "${dir.path}/output.mp3";
    var cmd = "-y -i "$path" -vn -ss $start -to $end -ar 16k -ac 2 -b:a 96k -acodec libmp3lame $outPath";
    log(cmd);

    FFmpegKit.executeAsync(cmd, (session) async {
      final returnCode = await session.getReturnCode();

      print("returnCode $returnCode");
    });

    return outPath;
}
 

Пожалуйста, помогите мне, как обрезать звук.

Ответ №1:

Я получаю эту ошибку, потому что выходной файл уже существует.

Итак, я решил это с помощью удаления существующего файла.
Я удалил файл, используя следующий код.

 try {
  await File(outPath).delete();
} catch (e) {
  print("Delete Error");
}
 

Ниже приведен мой рабочий код.

 static Future<String> cutAudio(String path, double start, double end) async {
        
        final Directory dir = await getTemporaryDirectory();
        final outPath = "${dir.path}/output.mp3";
    
        try {
          await File(outPath).delete();
        } catch (e) {
          print("Delete Error");
        }
    
        var cmd = "-y -i "$path" -vn -ss $start -to $end -ar 16k -ac 2 -b:a 96k -acodec libmp3lame $outPath";
        log(cmd);
    
        FFmpegKit.executeAsync(cmd, (session) async {
          final returnCode = await session.getReturnCode();
    
          print("returnCode $returnCode");
        });
    
        return outPath;
    }