我从https://pub.dartlang.org/导入了一个名为audioplayer的软件包。我在我的.yaml文件依赖项中添加了依赖项:
flutter:
sdk: flutter
cupertino_icons: ^0.1.2
audioplayers: ^0.15.1
assets:
- assets/
note1.wav是我在assets文件夹中的音频文件。
然后在终端中运行命令flutter pub get
。
下面是我的Flutter代码:
import 'package:flutter/material.dart';
import 'package:audioplayers/audio_cache.dart';
void main() => runApp(XylophoneApp());
class XylophoneApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: SafeArea(
child: Center(
child: FlatButton(
onPressed: () {
final player = AudioCache();
player.play('note1.wav');
},
child: Text('click me'),
),
),
),
),
);
}
}
但是没有声音,相反,我得到了以下错误:
iOS => call startHeadlessService, playerId e24a78e3-1f9f-439a-8f55-c4a55386da4b
iOS => call play, playerId e24a78e3-1f9f-439a-8f55-c4a55386da4b
play!
isLocal: 1 1
volume: 1.000000 1
position: 0 (null)
setUrl /Users/pratteekshaurya/Library/Developer/CoreSimulator/Devices/13364636-6425-40FF-A7EC-9C2498EFA847/data/Containers/Data/Application/B2C9DBA6-8B70-4D3B-9463-5754D4556893/Library/Caches/note1.wav
player status: 1
iOS -> updateDuration...3.750000
iOS -> invokechannel
iOS -> onSoundComplete...
flutter: Fatal Error: Callback lookup failed!
我是新的Flutter,我不能找出是什么问题,因为我遵循了文件中给出的确切。
3条答案
按热度按时间4nkexdtk1#
在我的例子中,Android模拟器是问题所在。为了确保这一点,尝试在Web应用程序版本中渲染,您会看到代码工作正常。
bzzcjhmw2#
我认为您需要将
assets
添加到onPressed
函数中。因此,您的
onPressed
代码应该如下所示:wz1wpwve3#
首先尝试重新启动您的应用,而不是热加载,而是停止并运行您的应用。
不应在FlatButton的onPressed()属性中添加assets/(顺便说一句,FlatButton类已弃用,请改用TextButton)。
另外,如果您是Android Studio用户,请检查“Dart Packages”文件夹中的“External Libraries”文件夹,您应该会找到“audioplayer”文件夹,如下面的屏幕截图所示;如果您是VisualStudio用户,请检查“Dependencies”文件夹。如果您找不到此软件包,则意味着安装有问题,请尝试重新安装此软件包
screenshot on how it should look like in Android Studio
screenshot on how it should look like in Visual Studio