extractErrorMessage function
提取错误消息并释放 C 字符串
Implementation
String extractErrorMessage(Pointer<OpusError> error) {
final errorRef = error.ref;
if (errorRef.message.address == 0) {
return 'Unknown error (code: ${errorRef.code})';
}
final message = errorRef.message.cast<Utf8>().toDartString();
final messagePtr = calloc<Pointer<Char>>();
messagePtr.value = errorRef.message;
bindings.free_c_string(messagePtr);
calloc.free(messagePtr);
return message;
}