NoSuchMethodError:メソッド 'play'がnullで呼び出されました

Aug 19 2020

私はフラッタープログラミングに不慣れで、オーディオプレーヤーアプリを構築しようとしていて、audioplayersパッケージを使用しています。オーディオを再生するためのボタンとオーディオを停止するためのボタンの2つのボタンを作成したいと思います。私が試したこと:このスレッドを参照してオーディオの再生を停止し、同じことをしましたが、このエラーが発生しました:

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');
                }

ここで何が問題なのですか?

回答

GuillaumeRoux Aug 19 2020 at 19:40

変数を初期化することはありませんcache。オブジェクトが次のようになっていないことを確認するために、initStateまたはbuildメソッド内で次のようなことを行う必要がありますnull

cache = AudioCache();