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

jtjikinw  于 2023-05-23  发布在  Android
关注(0)|答案(5)|浏览(194)

issue未为类型“AudioCache”定义方法“play”。
import 'package:flutter/material. dart'; import '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'),
        ),
      ),
    ),
  ),
 );
}

}

yh2wf1be

yh2wf1be1#

下面的代码从audioplayer 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'));

考虑从音频播放器中查找migration guide

a0zr77ik

a0zr77ik2#

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:播放与应用捆绑的资产,通常位于assets目录下
  4. BytesSource(仅部分平台):直接传入音频的字节**(从任何地方读取)**。
    您可以从audioplayers看到更多信息
izkcnapc

izkcnapc3#

如果您在***Tharwat Samy课程***中遇到此问题,那么以下是问题的解决方案:
1.更改此代码:

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'));

来自Tharwat samy的一名学生🤍提供:AMG,https://web.facebook.com/mohamed.amged.351

azpvetkf

azpvetkf4#

你的进口好像有问题。导入此👇
import 'package:audioplayer/audioplayer. dart';
如果问题仍然存在,请使用旧版本。我认为0.19.0版本应该适合你。

uidvcgyl

uidvcgyl5#

@Raj如果你正在做LinkedIn课程由伦敦应用酿酒厂和安吉拉余然后一个确切的版本,将完美的工作将是0.10.0
音频播放器:0.10.0
这是一个由安吉拉和它的工作完美的我:-)不会尝试,但如果不是@Zain Basharat阿里的建议。谢谢你的提示!:—)

相关问题