NoSuchMethodError: O método 'play' foi chamado em null

Aug 19 2020

Eu sou novo na programação de flutter, estava tentando construir um aplicativo reprodutor de áudio e estou usando o pacote audioplayers . Quero criar dois botões, um para reproduzir o áudio e outro para interromper o áudio. O que eu tentei: referi-me a este tópico Parar de reproduzir áudio e fiz o mesmo, mas recebi este erro:

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

Meu código:

AudioCache cache;  
AudioPlayer player;

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

o que está errado aqui?

Respostas

GuillaumeRoux Aug 19 2020 at 19:40

Você nunca inicializa sua variável cache. Você deve fazer algo assim dentro de um initStateou em um buildmétodo para garantir que seu objeto não seja null:

cache = AudioCache();