flutter音频拼接多个音频文件拼接成一个ffmpeg

在开发的过程中, 可能会遇到多个音频组合后播放的需求, 主要是使用ffmpeg 进行编码处理
需要用到插件: flutter_ffmpeg的filter_complex相关功能

1、

flutter_ffmpeg:
    path: plugins/flutter_ffmpeg

2、

// 引入头文件 
import 'package:flutter_ffmpeg/flutter_ffmpeg.dart';

3、

// 声明 FlutterFFmpeg
final FlutterFFmpeg _flutterFFmpeg = FlutterFFmpeg();

4、拼接多个音频, filePaths是一个等待拼接的多个音频的地址数组, outputPath是最终拼接完成的目标音频地址

  Future<String> mergeMp3Files(List<String> filePaths, String outputPath) async {
// 判断读写权限。拼接后要写入到指定地址outputPath
    PermissionStatus _permissionStatus = PermissionStatus.denied;
    final status = await Permission.storage.request();
    _permissionStatus = status;
    if (_permissionStatus != PermissionStatus.granted) {
      gbs.shower.toast("请开启文件读写权限");
      return "";
    }
    String fullCommand = filePaths.join(' ');
    fullCommand = '$fullCommand -filter_complex "[0:a][1:a]concat=n=${filePaths.length}:v=0:a=1[out]" -map "[out]" $outputPath';
    int session = await _flutterFFmpeg.execute(fullCommand);
    if (session == 0) {
      return outputPath;
    }
    print("--------------------p------------------------拼接失败");
    return "";
  }

5、flutter_ffmpeg还有许多功能, 如视频文件和音频文件拼接, 视频文件转音频文件等

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容