未为"音频缓存"类型定义方法'play'



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

  1. UrlSource:从Internet的远程URL获取音频
  2. DeviceFileSource:访问用户设备中的文件,可能由文件选择器选择
  3. AssetSource:播放与应用程序捆绑的资产,通常在资产目录中
  4. 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'), 
  • 对所有音频文件路径进行此更改
  1. 还更改玩家代码:

    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类。

AudioPlayerClass已经使用了AudioCacheClass,并在方法setSourceAsset中实现了它。对于保存在assets文件夹中的文件,此方法将其保存到缓存中。

然后,注意它不会自动播放,你需要手动播放。

由于play()方法从源代码返回方法resume()检查AudioPlayer类,因此可以通过直接执行方法resume()手动播放。


示例:

对于文件"assets/note1.wav"。 assets/默认前缀为

final player = AudioPlayer();
await player.setSourceAsset('note1.wav'); 
await player.resume();`

相关内容

最新更新