You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Flutter中使用audioplayers包播放资源音频文件?

使用最新版audioplayers播放Flutter项目Asset中的音频文件

步骤1:添加依赖

在项目根目录的pubspec.yaml文件中,将audioplayers依赖添加到dependencies块(替换为pub.dev上的最新版本号):

dependencies:
  flutter:
    sdk: flutter
  audioplayers: ^5.2.1 # 请替换为当前最新版本

执行flutter pub get完成依赖安装。

步骤2:配置Asset文件

在pubspec.yaml的flutter块中,添加你的音频文件路径(假设音频文件为assets/background.mp3):

flutter:
  uses-material-design: true
  assets:
    - assets/background.mp3 # 单个音频文件的相对路径

注意:YAML对缩进敏感,确保assets下的路径有正确的缩进(通常为2个空格)。

步骤3:编写播放代码

  1. 导入audioplayers包:
import 'package:audioplayers/audioplayers.dart';
  1. 创建播放器实例并执行播放逻辑:
    你可以在按钮点击或其他触发事件中调用播放代码,示例如下:
// 初始化播放器
final player = AudioPlayer();

// 加载并播放Asset中的音频
try {
  await player.play(AssetSource('background.mp3'));
} catch (e) {
  print('播放出错: $e');
}

完整可运行示例

以下是一个极简的演示项目,点击按钮即可播放音频:

import 'package:flutter/material.dart';
import 'package:audioplayers/audioplayers.dart';

void main() => runApp(const AudioDemoApp());

class AudioDemoApp extends StatelessWidget {
  const AudioDemoApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: const Text('Asset音频播放')),
        body: Center(
          child: ElevatedButton(
            onPressed: () async {
              final player = AudioPlayer();
              try {
                await player.play(AssetSource('background.mp3'));
              } catch (e) {
                print('播放失败: $e');
              }
            },
            child: const Text('播放音频'),
          ),
        ),
      ),
    );
  }
}

常见注意事项

  • 音频文件名和路径必须与pubspec.yaml中的配置完全一致(区分大小写)。
  • 支持MP3、WAV、OGG等常见格式,具体支持范围取决于目标平台。
  • 需要循环播放时,可添加await player.setLoopMode(LoopMode.one);。
  • 播放结束后调用player.dispose();释放资源,避免内存泄漏。

内容的提问来源于stack exchange,提问作者Abdul Basit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 16:54:18