prepare method

  1. @override
Future<WavFileAudioSinkSession> prepare(
  1. AudioFormat format, {
  2. AudioCancellationToken? cancellationToken,
})

Allocates a sink for format without accepting frames yet.

Implementation

@override
Future<WavFileAudioSinkSession> prepare(
  AudioFormat format, {
  AudioCancellationToken? cancellationToken,
}) async {
  cancellationToken?.throwIfCancelled();
  final int bytesPerFrame = format.channels * encoding.bytesPerSample;
  if (encodingBufferBytes < bytesPerFrame) {
    throw ArgumentError.value(
      encodingBufferBytes,
      'encodingBufferBytes',
      'Must hold at least one encoded interleaved sample frame '
          '($bytesPerFrame bytes).',
    );
  }
  if (_prepared) {
    throw StateError('A WavFileAudioSink is single-use.');
  }
  _prepared = true;
  return WavFileAudioSinkSession._prepare(
    path: path,
    format: format,
    encoding: encoding,
    gapPolicy: gapPolicy,
    abortPolicy: abortPolicy,
    encodingBufferBytes: encodingBufferBytes,
    cancellationToken: cancellationToken,
  );
}