abort method
Immediately stops pending work and discards buffered data.
Implementations must safely interrupt an in-flight write or finish.
Callers may invoke abort concurrently to guarantee prompt shutdown of
realtime playback or provider I/O.
Implementation
@override
Future<void> abort({AudioFailure? failure}) {
if (_status.state == AudioSessionState.closed ||
_status.state == AudioSessionState.finished ||
_status.state == AudioSessionState.aborted ||
_status.state == AudioSessionState.failed) {
return Future<void>.value();
}
return _abortFuture ??= _abort(failure);
}