issue没有为类型"AudioCache"定义方法"play">
导入"package:flutter/material.dart";导入'package:audioplayers/src/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: TextButton(
onPressed: () {
final player = AudioCache();
player.play('note1.wave');
},
child: Text('click me'),
),
),
),
),
);
}
}
以下代码在音频播放器v1.0.1 中不再有效
final player = AudioCache();
player.play('note1.wave');
相反,你可以做这个
final player = AudioPlayer();
//
player.play(UrlSource('note1.wave'));
// If file located in assets folder like assets/sounds/note01.wave"
await player.play(AssetSource('sounds/note1.wave'));
考虑从音频播放器中查看迁移指南
AudioCache
由于名称混乱而失效。现在,如果你想从assets
中播放audio file
,你可以使用这个。
// add this in imports
import 'package:audioplayers/audioplayers.dart';
// play audio
final player = AudioPlayer();
player.play(AssetSource('note1.wav'));
如果您不想使用资源,请使用此选项而不是AssetSource
。
UrlSource
:从Internet的远程URL获取音频DeviceFileSource
:访问用户设备中的文件,可能由文件选择器选择AssetSource
:播放与应用程序捆绑的资产,通常在资产目录中BytesSource
(仅限某些平台):直接传入音频的字节数(从任何位置读取)
您可以从audioplayers
文档中看到更多信息
如果您在Tharwat Samy课程中遇到此问题,那么以下是问题的解决方案:
- 注意:
音频播放器4.0.1
颤振3.7.10
-
更改此代码:
Number( image: 'assets/images/numbers/number_one.png', enName: 'one', jpName: 'Ichi', sound: 'assets/sounds/numbers/number_one_sound.mp3'),
到:
Number(
image: 'assets/images/numbers/number_one.png',
enName: 'one',
jpName: 'Ichi',
// remove 'assets/' from audio path .
sound: 'sounds/numbers/number_one_sound.mp3'),
- 对所有音频文件路径进行此更改
还更改玩家代码:
AudioCache player = AudioCache(prefix:'assets/sounds/numbers/'); player. Play(number.sound);
到:
final player = AudioPlayer();
player.play(AssetSource(number.sound));
或者您也可以通过以下方式直接添加路径:
final player = AudioPlayer();
// don't forget to delete 'assets/' from the path
player.play(AssetSource('sounds/numbers/number_one_sound.mp3'));
来自塔尔瓦特萨米的一名学生由AMG提供,https://web.facebook.com/mohamed.amged.351
下面的代码使用AudioCache而不是AudioPlayer();
final player = AudioCache();
player.play('note1.wave');
你应该改为。。。
final player = AudioPlayer();
player.play('note1.wave');
您的导入似乎有问题。请导入此
import"package:audioplayers/audioplayers.dart";
如果问题仍然存在,请使用它的旧版本。我认为0.19.0版本应该适合你。
@Raj如果你正在学习伦敦应用酿酒厂和Angela Yu的LinkedIn课程,那么完美的确切版本将是0.10.0
音频播放器:0.10.0
这是Angela使用的,对我来说效果很好:-)如果不是Zain Basharat Ali的建议,我不会尝试。谢谢你的提示!:-)
AudioCache
类用于管理临时保存音频文件的缓存。检查源代码中的AudioCache类。
AudioPlayer
Class已经使用了AudioCache
Class,并在方法setSourceAsset
中实现了它。对于保存在assets
文件夹中的文件,此方法将其保存到缓存中。
然后,注意它不会自动播放,你需要手动播放。
由于play()
方法从源代码返回方法resume()
检查AudioPlayer类,因此可以通过直接执行方法resume()
手动播放。
示例:
对于文件"assets/note1.wav"。 assets/默认前缀为
final player = AudioPlayer();
await player.setSourceAsset('note1.wav');
await player.resume();`