flutter - 如何在 Flutter 中使用音频播放器插件播放本地 mp3 文件

如何使用 audioplayer 0.2.0 播放本地 mp3 文件在 flutter 中。

pubspec.yaml

flutter:
    assets:
    - sounds/music.mp3

main.dart

Future<ByteData> loadAsset() async {
    return await rootBundle.load('sounds/music.mp3');
}

// FIXME: This code is not working.
Future playLocal() async {
    final result = await audioPlayer.play(loadAsset());
    if (result == 1) setState(() => playerState = PlayerState.playing);
}

我可以从 rootBundle 获取本地资源路径吗? 我可以在 audioPlayer 上通过 ByteData 支付音频吗?

最佳答案

audioplayer 插件目前只支持网络路径和文件。您可以将 Assets 移动到临时文件夹并使用以下代码进行播放:

import 'package:path_provider/path_provider.dart';

...

final file = new File('${(await getTemporaryDirectory()).path}/music.mp3');
await file.writeAsBytes((await loadAsset()).buffer.asUint8List());
final result = await audioPlayer.play(file.path, isLocal: true);

https://stackoverflow.com/questions/46486475/

相关文章:

flutter - 如何从 TextField 中删除内容填充?

android - 库 com.google.android.gms :play-services-

dart - Flutter:如何正确实现 FlutterError.OnError

flutter - 在 AWS Device Farm、Saucelabs、Firebase 测试实

visual-studio - 是否可以在 Visual Studio 2017 IDE 上设置 f

dart - 在 RichText 小部件中向 TextSpan 背景添加额外的填充

flutter - 像 SliverAppBar 一样隐藏 TabBar

android - Flutter 检索 ro.product.cpu.abi 的设备属性时出错

flutter - 如何使用 FlutterDriver 检查小部件是否可见

dart - pubspec.yaml 中的配置标志如何工作?