startVideoRecording method
Future<bool>
startVideoRecording({
- String? path,
- UVideoCodec? codec,
- int? bitrate,
- bool? enableAudio,
- Duration? maxDuration,
Implementation
Future<bool> startVideoRecording({String? path, UVideoCodec? codec, int? bitrate, bool? enableAudio, Duration? maxDuration}) async {
final int? id = _sessionId;
if (id == null || value.isRecording) return false;
try {
await UCameraChannel.invoke<void>("startRecording", <String, Object?>{
"sessionId": id,
"path": path,
"codec": (codec ?? _config.videoCodec).name,
"bitrate": bitrate ?? _config.videoBitrate,
"enableAudio": enableAudio ?? _config.enableAudio,
"maxDurationMs": (maxDuration ?? _config.maxRecordingDuration)?.inMilliseconds,
"maxBytes": _config.maxRecordingBytes,
});
_recordedBeforePause = Duration.zero;
_recordingStartedAt = DateTime.now();
_startRecordingTicker();
_emit(value.copyWith(state: UCameraState.recording, recordingDuration: Duration.zero, recordingBytes: 0));
return true;
} on UCameraException catch (error) {
_fail(error);
return false;
} catch (error) {
_fail(UCameraException(code: UCameraErrorCode.unknown, message: "$error"));
return false;
}
}