Refactor flutter to support Android (#1072)
This commit is contained in:
27
flutter/sherpa_onnx/lib/src/wave_writer.dart
Normal file
27
flutter/sherpa_onnx/lib/src/wave_writer.dart
Normal file
@@ -0,0 +1,27 @@
|
||||
// Copyright (c) 2024 Xiaomi Corporation
|
||||
import 'dart:ffi';
|
||||
import 'dart:typed_data';
|
||||
import 'package:ffi/ffi.dart';
|
||||
|
||||
import './sherpa_onnx_bindings.dart';
|
||||
|
||||
bool writeWave(
|
||||
{required String filename,
|
||||
required Float32List samples,
|
||||
required int sampleRate}) {
|
||||
final Pointer<Utf8> filenamePtr = filename.toNativeUtf8();
|
||||
|
||||
final n = samples.length;
|
||||
final Pointer<Float> p = calloc<Float>(n);
|
||||
|
||||
final pList = p.asTypedList(n);
|
||||
pList.setAll(0, samples);
|
||||
|
||||
int ok =
|
||||
SherpaOnnxBindings.writeWave?.call(p, n, sampleRate, filenamePtr) ?? 0;
|
||||
|
||||
calloc.free(p);
|
||||
calloc.free(filenamePtr);
|
||||
|
||||
return ok == 1;
|
||||
}
|
||||
Reference in New Issue
Block a user