MiniProgramMicrophoneResult.fromJson constructor

MiniProgramMicrophoneResult.fromJson(
  1. Map<String, dynamic> json
)

Implementation

factory MiniProgramMicrophoneResult.fromJson(Map<String, dynamic> json) {
  if (json['recordingId'] is! String ||
      json['mediaRef'] is! String ||
      json['fileName'] is! String ||
      json['bytes'] is! int ||
      json['durationMs'] is! int ||
      json['stopReason'] is! String ||
      json['recordedAtUtc'] is! String ||
      json['mimeType'] != 'audio/mp4' ||
      json['codec'] != 'aac' ||
      json['sampleRate'] != 16000 ||
      json['channels'] != 1) {
    throw const FormatException('Invalid microphone recording metadata.');
  }
  final timestamp = DateTime.tryParse(json['recordedAtUtc'] as String);
  if (timestamp == null) {
    throw const FormatException('Invalid microphone recording timestamp.');
  }
  return MiniProgramMicrophoneResult(
    recordingId: json['recordingId'] as String,
    mediaRef: json['mediaRef'] as String,
    fileName: json['fileName'] as String,
    bytes: json['bytes'] as int,
    durationMs: json['durationMs'] as int,
    stopReason: json['stopReason'] as String,
    recordedAtUtc: timestamp,
  );
}