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

Flutter冥想页面音频播放失败求助(附代码与错误信息)

修复Flutter音频加载异常(Unable to load asset: assets/medAudio.mp3)

一、基础配置排查

  • 检查pubspec.yaml资源配置
    确保路径格式和缩进正确(必须是2个空格,作为flutter:的子项):

    flutter:
      assets:
        - assets/medAudio.mp3
    

    配置完成后必须执行flutter pub get并重启项目,热重载不会生效。如果是整个assets文件夹批量配置,写成- assets/即可。

  • 核对文件路径与名称

    • 文件名大小写完全匹配:Flutter对资源路径大小写敏感(尤其iOS/macOS平台),比如实际文件是MedAudio.mp3,代码里写medAudio.mp3会直接报错。
    • 确认文件确实放在项目根目录的assets文件夹下,不要误放到lib或其他子目录。

二、代码逻辑修正

如果使用audioplayers插件,确保加载和播放逻辑正确(以最新版本为例):

import 'package:audioplayers/audioplayers.dart';

final AudioPlayer _audioPlayer = AudioPlayer();

// Start按钮点击回调
void startMeditation() async {
  // 启动计时器的逻辑...
  
  // 加载并播放音频
  try {
    await _audioPlayer.play(AssetSource('medAudio.mp3'));
  } catch (e) {
    print('播放失败: $e');
  }
}

旧版本audioplayers可能用AudioCache,但新版本推荐使用AssetSource,兼容性更好。

三、常见坑点解决

  • 清理缓存重启
    执行flutter clean,再运行flutter pub get,最后重新启动项目,避免旧缓存导致的配置不生效。
  • iOS平台额外配置
    如果需要后台播放音频,在ios/Runner/Info.plist中添加权限:
    <key>UIBackgroundModes</key>
    <array>
      <string>audio</string>
    </array>
    
  • Android平台检查
    本地音频无需额外权限,但如果是在线音频,需在android/app/src/main/AndroidManifest.xml中添加网络权限:
    <uses-permission android:name="android.permission.INTERNET" />
    

四、替代实现方案

如果上述方法无效,可以尝试以下方案:

  1. 切换just_audio插件
    这是另一个稳定的音频播放库,配置更简洁:
    import 'package:just_audio/just_audio.dart';
    
    final AudioPlayer _player = AudioPlayer();
    
    void startMeditation() async {
      // 计时器逻辑...
      await _player.setAsset('assets/medAudio.mp3');
      await _player.play();
    }
    
    pubspec.yaml添加依赖:
    dependencies:
      just_audio: ^0.9.34
    
  2. 字节流直接加载
    绕过资源路径读取,直接加载文件字节:
    import 'package:flutter/services.dart';
    import 'package:audioplayers/audioplayers.dart';
    
    void startMeditation() async {
      final ByteData data = await rootBundle.load('assets/medAudio.mp3');
      await _audioPlayer.play(BytesSource(data.buffer.asUint8List()));
    }
    

内容的提问来源于stack exchange,提问作者Tahmeed Zamindar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 06:02:37