如何在飞镖中获得音频持续时间(不是颤振)?

How to get audio duration in dart (not flutter)?

我需要在 dart 包(不在 FLUTTER 应用程序中)中获取音频持续时间(从文件和 url)。

当我尝试使用来自 pub.dev 的软件包(如 just_audio 或类似的)时,我收到如下错误:

/.flutter/packages/flutter/lib/src/services/binary_messenger.dart:6:8: Error: Not found: 'dart:ui'

那么你知道在pure dart中如何获取duration吗?

如果你只想处理 mp3 文件,你很幸运,你可以使用这个包:mp3_info: ^0.2.0

代码示例:

  //url
  var url = Uri.parse('https://some_path/file.mp3');
  var response = await http.get(url);

  final mp3 = MP3Processor.fromBytes(response.bodyBytes);

  //file
  // final mp3 = MP3Processor.fromFile(File('path_to_file'));

  print(mp3.bitrate);
  print(mp3.duration);

但是如果你需要使用其他格式,你必须根据音频格式规范解析文件的字节数据...或者你可以尝试找到一些 c/c++ 库并通过ffi.