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

AudioCache已淘汰,如何在Flutter中正常添加音频播放器?

Flutter 音频播放器添加方案(解决AudioCache弃用问题)

问题原因

你遇到的是AudioCache API已被官方废弃的问题,当前主流音频播放包(如audioplayers)从v0.15.0版本开始,不再推荐使用AudioCache,取而代之的是AssetSource等新资源加载方式。

具体解决步骤(以audioplayers为例)

1. 安装最新版依赖

在项目的pubspec.yaml中添加依赖:

dependencies:
  audioplayers: ^6.0.0 # 建议使用最新稳定版

执行命令更新依赖:

flutter pub get

2. 配置本地音频资源

将音频文件放在项目的assets/audio/目录下(可自定义路径),然后在pubspec.yaml中声明资源:

flutter:
  assets:
    - assets/audio/your_audio.mp3
    # 若有多个文件,可逐个添加或用目录通配符:- assets/audio/

3. 使用新API播放音频

直接通过AudioPlayer结合AssetSource加载本地音频,替代原AudioCache的用法:

import 'package:audioplayers/audioplayers.dart';

// 初始化播放器实例
final AudioPlayer audioPlayer = AudioPlayer();

// 播放本地音频
Future<void> playAudio() async {
  // 路径对应pubspec中声明的assets下的相对路径
  await audioPlayer.play(AssetSource('audio/your_audio.mp3'));
}

// 暂停播放
Future<void> pauseAudio() async {
  await audioPlayer.pause();
}

// 停止播放并释放资源
Future<void> stopAudio() async {
  await audioPlayer.stop();
  await audioPlayer.dispose();
}

4. 监听播放状态(可选)

可以监听播放器状态变化,实现UI交互逻辑:

audioPlayer.onPlayerStateChanged.listen((PlayerState state) {
  switch (state) {
    case PlayerState.playing:
      // 处理播放中逻辑
      break;
    case PlayerState.paused:
      // 处理暂停逻辑
      break;
    case PlayerState.stopped:
      // 处理停止逻辑
      break;
    default:
      break;
  }
});

其他音频包适配提示

如果使用just_audio等其他包,核心思路一致:

  • 放弃使用AudioCache相关API
  • 使用对应包提供的资源加载类(如AudioSource.asset)加载本地音频

内容的提问来源于stack exchange,提问作者Ahmadreza yazdinejad

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 23:24:47