Flutter Audioplayers Невозможно загрузить ресурсIOS

Программируем под IOS
Ответить
Anonymous
 Flutter Audioplayers Невозможно загрузить ресурс

Сообщение Anonymous »

Я пытаюсь воспроизвести простой звук, используя библиотеку аудиоплееров Flutter. Когда я пытаюсь это сделать, я получаю сообщение об ошибке Невозможно загрузить ресурс. Я ответил на несколько связанных вопросов на этом сайте, и все они, похоже, предлагают только проверить отступы в файле pubspec.yaml и выполнить очистку флаттера. Я делал это несколько раз и не имел никаких результатов. Flutter Doctor не обнаруживает проблем.
Когда я нажимаю кнопку, которая должна вызвать воспроизведение звука, я получаю следующее:

Код: Выделить всё

E/flutter (22727): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: Unable to load asset: assets/sounds/start.mp3
E/flutter (22727): #0      PlatformAssetBundle.load (package:flutter/src/services/asset_bundle.dart:221:7)
E/flutter (22727): 
E/flutter (22727): #1      AudioCache._fetchAsset (package:audioplayers/audio_cache.dart:60:29)
E/flutter (22727): #2      AudioCache.fetchToMemory (package:audioplayers/audio_cache.dart:67:30)
E/flutter (22727): 
E/flutter (22727): #3      AudioCache.load (package:audioplayers/audio_cache.dart:82:37)
E/flutter (22727): #4      AudioCache.getAbsoluteUrl (package:audioplayers/audio_cache.dart:140:23)
E/flutter (22727): #5      AudioCache.play (package:audioplayers/audio_cache.dart:103:24)
E/flutter (22727): #6      playSound (package:tick_tok_bio/player.dart:14:20)
E/flutter (22727): #7      MapsState.startNewRoute (package:tick_tok_bio/gps_tracking.dart:122:13)
E/flutter (22727): #8      MapsState.startStop. (package:tick_tok_bio/gps_tracking.dart:240:13)
E/flutter (22727): #9      _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:779:19)
E/flutter (22727): #10     _InkResponseState.build. (package:flutter/src/material/ink_well.dart:862:36)
E/flutter (22727): #11     GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:182:24)
E/flutter (22727): #12     TapGestureRecognizer.handleTapUp (package:flutter/src/gestures/tap.dart:504:11)
E/flutter (22727): #13     BaseTapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:282:5)
E/flutter (22727): #14     BaseTapGestureRecognizer.handlePrimaryPointer (package:flutter/src/gestures/tap.dart:217:7)
E/flutter (22727): #15     PrimaryPointerGestureRecognizer.handleEvent (package:flutter/src/gestures/recognizer.dart:475:9)
E/flutter (22727): #16     PointerRouter._dispatch (package:flutter/src/gestures/pointer_router.dart:76:12)
E/flutter (22727): #17     PointerRouter._dispatchEventToRoutes. (package:flutter/src/gestures/pointer_router.dart:122:9)
E/flutter (22727): #18     _LinkedHashMapMixin.forEach (dart:collection-patch/compact_hash.dart:379:8)
E/flutter (22727): #19     PointerRouter._dispatchEventToRoutes (package:flutter/src/gestures/pointer_router.dart:120:18)
E/flutter (22727): #20     PointerRouter.route (package:flutter/src/gestures/pointer_router.dart:106:7)
E/flutter (22727): #21     GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:218:19)
E/flutter (22727): #22     GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:198:22)
E/flutter (22727): #23     GestureBinding._handlePointerEvent (package:flutter/src/gestures/binding.dart:156:7)
E/flutter (22727): #24     GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:102:7)
E/flutter (22727): #25     GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:86:7)
E/flutter (22727): #26     _rootRunUnary (dart:async/zone.dart:1196:13)
E/flutter (22727): #27     _CustomZone.runUnary (dart:async/zone.dart:1085:19)
E/flutter (22727): #28     _CustomZone.runUnaryGuarded (dart:async/zone.dart:987:7)
E/flutter (22727): #29     _invoke1 (dart:ui/hooks.dart:275:10)
E/flutter (22727): #30     _dispatchPointerDataPacket (dart:ui/hooks.dart:184:5)
Вот код, который должен воспроизводить аудиофайл:

Код: Выделить всё

import 'package:audioplayers/audio_cache.dart';
import 'dart:async';
import 'package:audioplayers/audioplayers.dart';

AudioPlayer advancedPlayer;
AudioCache audioCache;

void initPlayer() {
advancedPlayer = AudioPlayer();
audioCache = AudioCache(fixedPlayer: advancedPlayer, prefix: 'sounds/');
}

Future  playSound(String path) async {
await audioCache.play(path);
return;
}
Вот где вызываются методы:

Код: Выделить всё

void initState() {
super.initState();
initPlayer();
}

void startNewRoute() async {
await playSound('start.mp3');
// more code here
}
Вот раздел ресурсов pubspec.yaml

Код: Выделить всё

flutter:
uses-material-design: true

assets:
- images/
- sounds/start.mp3

fonts:
- family: RobotoMono
fonts:
- asset: fonts/RobotoMono-Regular.ttf
- asset: fonts/RobotoMono-Bold.ttf
А файлы структурированы следующим образом:

Код: Выделить всё

root
lib
[dart files]
images
[some images]
sounds
start.mp3
Я не могу найти никаких расхождений между тем, что я сделал здесь, и тем, как документация библиотеки объясняет, как ее следует использовать. Любая помощь приветствуется, спасибо.

Подробнее здесь: https://stackoverflow.com/questions/625 ... load-asset
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»