未为“AudioCache”类型定义“play”方法

Raj*_*Raj 8 dart android-studio flutter dart-packages flutter-web

问题 未为“AudioCache”类型定义“play”方法。
导入“包:flutter/material.dart”;导入'包: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'),
        ),
      ),
    ),
  ),
 );
}
Run Code Online (Sandbox Code Playgroud)

}

حوي*_*اوي 27

以下代码从 audioplayers v1.0.1 起不再有效

final player = AudioCache();
player.play('note1.wave');
Run Code Online (Sandbox Code Playgroud)

相反,你可以这样做

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'));
Run Code Online (Sandbox Code Playgroud)

考虑查看音频播放器的迁移指南


Ham*_*ara 5

AudioCache因名字混乱而死。现在,如果您想播放来自audio fileassets可以使用它。

// add this in imports
import 'package:audioplayers/audioplayers.dart';

// play audio
final player = AudioPlayer();
player.play(AssetSource('note1.wav'));
Run Code Online (Sandbox Code Playgroud)

AssetSource如果您不想玩资产,请使用此选项。

  1. UrlSource:从互联网上的远程 URL 获取音频
  2. DeviceFileSource:访问用户设备中的文件,可能由文件选择器选择
  3. AssetSource:播放与您的应用程序捆绑在一起的资产,通常位于资产目录中
  4. BytesSource(仅限某些平台):直接传入音频字节(从任何地方读取)

您可以从audioplayers 文档中看到更多内容


Zai*_*Ali 0

您的导入似乎有问题。导入这个

导入'包:audioplayers/audioplayers.dart';

如果问题仍然存在,请使用旧版本。我认为 0.19.0 版本应该适合你。