flutter www.example.com出现抖动音频缓存错误player.play

3gtaxfhh  于 2022-12-14  发布在  Flutter
关注(0)|答案(4)|浏览(89)

嗨,这段代码在我的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'),
            ),
          ),
        ),
      ),
    );
  }
}
wwwo4jvm

wwwo4jvm1#

我正在学习同一门课程!您在AudioCache声明中丢失了左/右括号。它应该是:

final player = AudioCache();

我也会这样做的音频播放,因为它会停止发出声音后,你按下几个按钮:

player.play('note$note.wav',
      mode: PlayerMode.LOW_LATENCY, 
      stayAwake: false);

它比原来的代码好,但不是完美的。我认为有音频32通道,得到使用相当快-约变化似乎释放他们有点快。祝你好运与其余的课程!

axzmvihb

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细节。

qhhrdooz

qhhrdooz3#

AudioCache现已过时,请尝试此操作

import 'package:audioplayers/audioplayers.dart';

final player = AudioPlayer();

player.play(AssetSource('note1.wav'));
8ljdwjyq

8ljdwjyq4#

AudioCache已过时。它现在无法使用。请改用以下代码:

child: TextButton(
  onPressed: () async {
    final player = AudioPlayer();
    await player.play(
      AssetSource('note1.wav'),
    );
  },
  child: Text("Play me"),
),

相关问题