NoSuchMethodError: เมธอด 'play' ถูกเรียกบน null

Aug 19 2020

ฉันกำลังใหม่ในการเขียนโปรแกรมกระพือผมก็พยายามที่จะสร้างแอพพลิเคเครื่องเล่นเสียงและฉันใช้audioplayersแพคเกจ ฉันต้องการสร้างปุ่มสองปุ่มปุ่มหนึ่งสำหรับเล่นเสียงและอีกปุ่มหนึ่งเพื่อหยุดเสียง ฉันได้ลองอะไรบ้าง: ฉันอ้างถึงเธรดนี้หยุดเล่นเสียงและทำแบบเดียวกัน แต่ได้รับข้อผิดพลาดนี้:

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();