嗨,这段代码在我的Flutter课程中与Angela一起工作得很好,哈哈,但是由于某种原因,player.play(“notes1.wav”)对我不起作用。提示?我得到了这个错误。
错误:没有为类型“Type”定义方法“play.”(位于[xylophone] lib/main.dart得undefined_method:17)
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'),
),
),
),
),
);
}
}
4条答案
按热度按时间wwwo4jvm1#
我正在学习同一门课程!您在AudioCache声明中丢失了左/右括号。它应该是:
我也会这样做的音频播放,因为它会停止发出声音后,你按下几个按钮:
它比原来的代码好,但不是完美的。我认为有音频32通道,得到使用相当快-约变化似乎释放他们有点快。祝你好运与其余的课程!
axzmvihb2#
迁移指南
相关性:音频播放器:^0.x.x
至
相关性:音频播放器:^1.0.1
https://github.com/bluefireteam/audioplayers/blob/main/migration_guide.md
AudioCache已死,源代码万岁主要的变化之一是我希望“杀死”AudioCache API,因为它给用户带来了巨大的困惑(尽管我们尽了最大努力记录了一切)。
我们仍然有AudioCache类,但它的API专门用于将资产文件转换为本地文件,缓存它们,并提供路径。然而,它通常不需要由最终用户使用,因为AudioPlayer本身现在能够播放任何来源的音频。
什么是Source?它是一个密封类,可以是以下类型之一:
UrlSource:从Internet设备的远程URL获取音频FileSource:访问用户设备中的文件,该文件可能由文件选取器AssetSource选择:播放与您的应用捆绑在一起的资产,通常位于资产目录BytesSource中(仅限某些平台):直接传入音频字节(从任何地方读取)。如果使用AssetSource,AudioPlayer将自动使用其AudioCache示例(如果未更改,默认为全局缓存)。这将统一AudioPlayer下的所有播放API,并完全删除大多数用户的AudioCache细节。
qhhrdooz3#
AudioCache现已过时,请尝试此操作
8ljdwjyq4#
AudioCache已过时。它现在无法使用。请改用以下代码: