OpusEncoder constructor

OpusEncoder({
  1. required Channels channels,
  2. required int sampleRate,
  3. Application application = Application.voip,
})

创建新的 Opus 编码器

channels 声道数:1 表示单声道(Mono),2 表示立体声(Stereo) sampleRate 采样率(Hz),支持的采样率:8000, 12000, 16000, 24000, 48000 application 应用模式,默认为 Application.voip

抛出 OpusException 如果创建失败

Implementation

OpusEncoder({
  required this.channels,
  required this.sampleRate,
  this.application = Application.voip,
}) {
  final result = calloc<Pointer<Encoder>>();
  final error = calloc<OpusError>();

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

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

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