【问题标题】:Flutter - audio player error: Unhandled Exception: Unable to load asset: then " <asynchronous suspension> "Flutter - 音频播放器错误:未处理的异常:无法加载资产:然后是“<异步暂停>”
【发布时间】:2021-07-14 04:16:32
【问题描述】:

我正在尝试制作一些在单击时会发出声音的按钮,我确实删除了软件包并安装了另一个,尝试了flutter clean,重新启动了工作室很多次,但似乎什么也没发生,它一直给我错误:[错误:flutter/lib/ui/ui_dart_state.cc(186)] 未处理的异常:无法加载资产:资产/音频文件夹/assets_note4.wav E/flutter (8639):#0 PlatformAssetBundle.load (package:flutter/src/services/asset_bundle.dart:227:7) E/颤动​​(8639): E/flutter(8639):#1 AudioCache._fetchAsset(包:audioplayers/audio_cache.dart:75:12) E/颤动​​(8639): E/flutter (8639):#2 AudioCache.fetchToMemory (package:audioplayers/audio_cache.dart:82:24) E/颤动​​(8639): E/flutter(8639):#3 AudioCache.load(包:audioplayers/audio_cache.dart:97:31) E/颤动​​(8639): E/flutter (8639):#4 AudioCache.getAbsoluteUrl (package:audioplayers/audio_cache.dart:192:17) E/颤动​​(8639): E/flutter (8639):#5 AudioCache.play (package:audioplayers/audio_cache.dart:122:18) E/颤动​​(8639): E/flutter (8639):每当我点击一个按钮时

import 'package:audioplayers/audio_cache.dart';

void main() => runApp(MaterialApp(
      home: Home(),
    ));

class Home extends StatefulWidget {
  @override
  _HomeState createState() => _HomeState();
}

class _HomeState extends State<Home> {
  void playLocalAsset(int x) {
    final player = AudioCache();
    player.play('audiofolder/assets_note$x.wav'); // error that i can't solve
  }

  Expanded buttonKey({Color color, int number}) {
    return Expanded(
      child: FlatButton(
        color: color,
        onPressed: () {
          playLocalAsset(number);
        },
      ),
    );
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: SafeArea(
        child: Column(
          crossAxisAlignment: CrossAxisAlignment.stretch,
          children: [
            buttonKey(color: Colors.red, number: 1),
            buttonKey(color: Colors.yellow, number: 2),
            buttonKey(color: Colors.orange, number: 3),
            buttonKey(color: Colors.green, number: 4),
            buttonKey(color: Colors.teal, number: 5),
            buttonKey(color: Colors.blue, number: 6),
            buttonKey(color: Colors.purple, number: 7),
          ],
        ),
      ),
    );
  }
}

这是pubspec.yaml 文件:

description: A new Flutter application.

publish_to: 'none' 
version: 1.0.0+1

environment:
  sdk: ">=2.7.0 <3.0.0"

dependencies:
  flutter:
    sdk: flutter
  cupertino_icons: ^1.0.2
  audioplayers: ^0.18.3


dev_dependencies:
  flutter_test:
    sdk: flutter

flutter:

  uses-material-design: true
  assets:
    - audiofolder/
 

【问题讨论】:

    标签: android flutter dart assets


    【解决方案1】:

    如果audiofolder 不在assets or another folder 中,则只需输入filename

    例如这是我的代码

     return AudioCache().play('audios/zapsplat_multimedia_game_sound_basic_digital_retro_incorrect_error_negative_005_40466.mp3');
    

    这是pubspec.yaml

    assets:
    - assets/
    

    在我的情况下,assets/audios 中的音​​频文件因此您必须在没有 assets/ 的情况下输入,因为资产已在 pubspec.yaml 中初始化

    希望能帮到你

    【讨论】:

    • 谢谢,它对我有用,但是在我点击按钮几次后,我收到此错误并且它停止产生声音:E/MediaPlayerNative(14047): error (1, -2147483646) E /MediaPlayer(14047): 错误 (1,-2147483646) E/MediaPlayerNative(14047): 在状态 0 中调用暂停,mPlayer(0xc347ff00) E/MediaPlayerNative(14047): 错误 (-38, 0) E/MediaPlayerNative(14047) : 尝试在错误状态下执行 seekTo: mPlayer=0xc347ff00, mCurrentState=0 E/MediaPlayerNative(14047): error (-38, 0) E/MediaPlayer(14047): Error (1,-2147483646)
    • 我从您的代码中看到,您的目标是创建 sfx 吗?
    • 有点,我的目标是制作一种具有多个按钮来播放不同声音的乐器
    • 也许这可以帮助你youtu.be/NnAF0LeAVoc
    • 我尝试根据视频更改一些代码,但不幸的是,这并没有帮助,我猜是包本身存在问题
    猜你喜欢
    • 2020-05-04
    • 2019-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多