NoSuchMethodError: il metodo 'play' è stato chiamato su null

Aug 19 2020

Sono nuovo nella programmazione flutter, stavo cercando di creare un'app per lettore audio e sto usando il pacchetto audioplayers . Voglio creare due pulsanti, uno per riprodurre l'audio e l'altro per interrompere l'audio. Cosa ho provato: ho fatto riferimento a questo thread Interrompi la riproduzione dell'audio e ho fatto lo stesso ma ho ricevuto questo errore:

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

Il mio codice:

AudioCache cache;  
AudioPlayer player;

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

cosa c'è di sbagliato qui?

Risposte

GuillaumeRoux Aug 19 2020 at 19:40

Non inizializzi mai la tua variabile cache. Dovresti fare qualcosa di simile all'interno di un initStateo in un buildmetodo per assicurarti che il tuo oggetto non sia null:

cache = AudioCache();