OpusDecoder constructor

OpusDecoder({
  1. required Channels channels,
  2. required int sampleRate,
})

创建新的 Opus 解码器

channels 声道数:1 表示单声道(Mono),2 表示立体声(Stereo) sampleRate 采样率(Hz),支持的采样率:8000, 12000, 16000, 24000, 48000

抛出 OpusException 如果创建失败

Implementation

OpusDecoder({required this.channels, required this.sampleRate}) {
  final result = calloc<Pointer<Decoder>>();
  final error = calloc<OpusError>();

  try {
    final res = bindings.new_decoder(
      channels.value,
      sampleRate,
      result,
      error,
    );

    if (res != 0) {
      final errorMsg = extractErrorMessage(error);
      throw OpusException(error.ref.code, errorMsg);
    }

    _decoder = result.value;
  } finally {
    freeError(error);
    calloc.free(result);
  }
}