未处理的异常:无法加载资源:“assets/asset/sound/beep.mp3”

问题描述 投票:0回答:2

我正在尝试在flutter(Android)中使用audioplayers插件,功能是一旦用户扫描条形码,之后就会播放蜂鸣声。 这是我的 pubspec.yml 代码:

dependencies:
  flutter:
    sdk: flutter
  flutter_overlay_loader: ^2.0.0
  provider: ^6.0.0
  collection: ^1.15.0
  permission_handler: ^8.0.0
  intl: ^0.17.0
  
  cupertino_icons: ^1.0.2
  http: ^1.1.2
  flutter_secure_storage: ^9.0.0
  barcode_scan2: ^4.3.0
  audioplayers: ^5.2.1

dev_dependencies:
  flutter_test:
    sdk: flutter

  flutter_lints: ^2.0.0

flutter:
  fonts:
    - family: Poppins
      fonts:
        - asset: asset/fonts/Poppins-Regular.ttf
        - asset: asset/fonts/Poppins-Medium.ttf
          weight: 500

  uses-material-design: true
  assets:
    - asset/images/
    - asset/images/audit/
    - asset/images/inquiry/
    - asset/images/common_icon/
    - asset/images/bottomNavigation/
    - asset/images/floatingButton/
    - asset/json/user/
    - asset/sound/

我的文件夹如下所示: enter image description here

我这样使用它:

 void handleBarcodeScan() async {
    var result = await BarcodeScanner.scan();
    print(result.rawContent);
    if (result.rawContent.isNotEmpty) {
      // Play beep sound
      AudioPlayer audioPlayer = AudioPlayer();
      await audioPlayer.play(AssetSource('asset/sound/beep.mp3'));
    }
    handleAddButtonPress(
      barcode: result.rawContent,
      inventoryDetails: widget.inventoryDetails,
    );
  }

我收到此错误:未处理的异常:无法加载资源:“assets/asset/sound/beep.mp3”。

android flutter mobile-application pubspec flutter-audioplayers
2个回答
0
投票

请按照正确的路径,在你的pubspec.yaml中进行配置

  assets:
     - assets/images/

放置例如图像文件“myImage.png”并使用以下路径调用您的代码:

static Widget myImage = Image.asset('assets/images/myImage.png');

0
投票

我也有同样的问题。

首先,您不需要额外的“资源”,因为 AudioPlayer 默认情况下有一个名为 的前缀

https://github.com/bluefireteam/audioplayers/blob/main/getting_started.md

AssetSource:播放与您的应用程序捆绑的资源,默认在资源目录中。要自定义前缀,请参阅 https://github.com/bluefireteam/audioplayers/blob/main/getting_started.md#audiocache

在启动 AudioPlayer 之前尝试此操作

AudioCache.instance = AudioCache(prefix: '');

所以结果应该是这样的:

AudioCache.instance = AudioCache(prefix: '');
final audioPlayer = AudioPlayer();
await audioPlayer.play(AssetSource('sound/beep.mp3'));


  
© www.soinside.com 2019 - 2024. All rights reserved.