NoSuchMethodError: La méthode 'play' a été appelée sur null

Aug 19 2020

Je suis nouveau dans la programmation de flutter, j'essayais de créer une application de lecteur audio et j'utilise le package audioplayers . Je souhaite créer deux boutons, l'un pour lire l'audio et l'autre pour arrêter l'audio. Qu'ai-je essayé: j'ai fait référence à ce fil Arrêtez de lire l'audio et j'ai fait de même, mais j'ai obtenu cette erreur:

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

Mon code:

AudioCache cache;  
AudioPlayer player;

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

qu'est-ce qui ne va pas ici?

Réponses

GuillaumeRoux Aug 19 2020 at 19:40

Vous n'initialisez jamais votre variable cache. Vous devriez faire quelque chose comme ça dans une initStateou dans une buildméthode pour vous assurer que votre objet ne l'est pas null:

cache = AudioCache();