如何在飞镖中获得音频持续时间(不是颤振)?
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
.
我需要在 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
.