NoSuchMethodError: Die Methode 'play' wurde bei null aufgerufen

Aug 19 2020

Ich bin neu in der Flatterprogrammierung, habe versucht, eine Audio-Player-App zu erstellen, und verwende das Audioplayers- Paket. Ich möchte zwei Schaltflächen erstellen, eine zum Abspielen des Audios und die andere zum Stoppen des Audios. Was habe ich versucht: Ich habe auf diesen Thread verwiesen. Hör auf, Audio abzuspielen, und habe dasselbe getan, aber diesen Fehler erhalten:

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")

Mein Code:

AudioCache cache;  
AudioPlayer player;

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

was ist hier falsch?

Antworten

GuillaumeRoux Aug 19 2020 at 19:40

Sie initialisieren Ihre Variable niemals cache. Sie sollten so etwas in einer initStateoder in einer buildMethode tun, um sicherzustellen, dass Ihr Objekt nicht null:

cache = AudioCache();