首页 > 解决方案 > NoSuchMethodError:在 null 上调用了方法“play”

问题描述

我是 Flutter 编程的新手,我正在尝试构建一个音频播放器应用程序,并且我正在使用audioplayers包。我想创建两个按钮,一个用于播放音频,另一个用于停止音频。我试过什么:我提到了这个线程停止播放音频并做了同样的事情,但得到了这个错误:

E/flutter (18681): [ERROR:flutter/lib/ui/ui_dart_state.cc(166)] Unhandled Exception: NoSuchMethodError: The method 'play' was called on null. 
E/flutter (18681): Receiver: null 
E/flutter (18681): Tried calling: play("audio/blind.mp3")

我的代码:

AudioCache cache;  
AudioPlayer player;

.
.
.
.
child: InkWell(
                onTap: () async {
                  player = await cache.play('audio/blind.mp3');
                }
.
.
.
.
. 
child: InkWell(
                onTap: () {
                   player?.stop();
                   print('working');
                }

这里有什么问题?

标签: flutter

解决方案


你永远不会初始化你的变量cache。您应该在 aninitStatebuild方法中执行类似的操作,以确保您的对象不是null

cache = AudioCache();

推荐阅读