【问题标题】:Q: Flutter plugin just_audioQ:Flutter 插件 just_audio
【发布时间】:2020-05-28 12:38:13
【问题描述】:

在 iOS 和 Android 上尝试将音频文件源更改为资产时出现错误: unable to load asset

我从位于here(pub.dev) 的示例中获取代码并替换

    _player.setUrl("https://s3.amazonaws.com/scifri-episodes/scifri20181123-episode.mp3").catchError((error) {
      // catch audio error ex: 404 url, wrong url ...
      print(error);
    });

对此: _player.setAsset("06 My Baby Left Me.mp3");
还使用上述文件在名为assets 的项目中创建了文件夹,并相应地更新了pubspec.yaml

完整的错误日志:

W/o.justaudiodem(18220): Accessing hidden method Landroid/media/AudioTrack;->getLatency()I (greylist, reflection, allowed)
I/ExoPlayerImpl(18220): Init b3b9aa8 [ExoPlayerLib/2.11.4] [a40, SM-A405FN, samsung, 29]
E/flutter (18220): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: Unable to load asset: 06 My Baby Left Me.mp3
E/flutter (18220): #0      PlatformAssetBundle.load (package:flutter/src/services/asset_bundle.dart:221:7)
E/flutter (18220): <asynchronous suspension>
E/flutter (18220): #1      AudioPlayer.setAsset (package:just_audio/just_audio.dart:279:41)
E/flutter (18220): <asynchronous suspension>
E/flutter (18220): #2      _MyAppState.initState (package:justaudiodemo/main.dart:28:13)
E/flutter (18220): #3      StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4640:58)
E/flutter (18220): #4      ComponentElement.mount (package:flutter/src/widgets/framework.dart:4476:5)
E/flutter (18220): #5      Element.inflateWidget (package:flutter/src/widgets/framework.dart:3446:14)
E/flutter (18220): #6      Element.updateChild (package:flutter/src/widgets/framework.dart:3214:18)
E/flutter (18220): #7      RenderObjectToWidgetElement._rebuild (package:flutter/src/widgets/binding.dart:1148:16)
E/flutter (18220): #8      RenderObjectToWidgetElement.mount (package:flutter/src/widgets/binding.dart:1119:5)
E/flutter (18220): #9      RenderObjectToWidgetAdapter.attachToRenderTree.<anonymous closure> (package:flutter/src/widgets/binding.dart:1061:17)
E/flutter (18220): #10     BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2607:19)
E/flutter (18220): #11     RenderObjectToWidgetAdapter.attachToRenderTree (package:flutter/src/widgets/binding.dart:1060:13)
E/flutter (18220): #12     WidgetsBinding.attachRootWidget (package:flutter/src/widgets/binding.dart:941:7)
E/flutter (18220): #13     WidgetsBinding.scheduleAttachRootWidget.<anonymous closure> (package:flutter/src/widgets/binding.dart:922:7)
E/flutter (18220): #14     _rootRun (dart:async/zone.dart:1180:38)
E/flutter (18220): #15     _CustomZone.run (dart:async/zone.dart:1077:19)
E/flutter (18220): #16     _CustomZone.runGuarded (dart:async/zone.dart:979:7)
E/flutter (18220): #17     _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:1019:23)
E/flutter (18220): #18     _rootRun (dart:async/zone.dart:1184:13)
E/flutter (18220): #19     _CustomZone.run (dart:async/zone.dart:1077:19)
E/flutter (18220): #20     _CustomZone.bindCallback.<anonymous closure> (dart:async/zone.dart:1003:23)
E/flutter (18220): #21     Timer._createTimer.<anonymous closure> (dart:async-patch/timer_patch.dart:23:15)
E/flutter (18220): #22     _Timer._runTimers (dart:isolate-patch/timer_impl.dart:398:19)
E/flutter (18220): #23     _Timer._handleMessage (dart:isolate-patch/timer_impl.dart:429:5)
E/flutter (18220): #24     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:168:12)
E/flutter (18220): 

非常感谢任何帮助。

【问题讨论】:

  • 你能从你的资产中删除所有的空间,看看是否有效吗? - 另外,请发布您的资产文件夹的文件结构

标签: flutter dart flutter-plugin


【解决方案1】:

如何更新您的pubspec.yml?我假设,你做了这样的事情:

assets:
  - assets/

如果是这样,您可能需要在文件名前添加assets。 而不是这样做:

_player.setAsset("06 My Baby Left Me.mp3");

你应该:

_player.setAsset("assets/06 My Baby Left Me.mp3");

【讨论】:

    【解决方案2】:

    您使用的是哪个版本的 just_audio? 您尝试使用 0.3.3 加载资产音频文件。

    just_audio: ^0.3.3
    

    【讨论】:

      猜你喜欢
      • 2020-12-03
      • 2020-10-11
      • 2021-06-01
      • 1970-01-01
      • 2021-05-26
      • 2021-09-19
      • 2021-06-09
      • 1970-01-01
      • 2023-02-24
      相关资源
      最近更新 更多