@override Future<void> dispose() async { if (_disposed) return; _disposed = true; _playing = false; }