I'm trying to record a video stream in Flutter Android platform but getting the error that "It's for Flutter Web only". Does it support recording video streaming in mobile platform? How can I record the video streaming in the mobile platform?
Future<bool> _checkPermissions() async {
final status = await Permission.storage.request();
return status.isGranted;
}
Future<String> _getRecordingPath() async {
final directory = await getApplicationDocumentsDirectory();
final timestamp = DateTime.now().millisecondsSinceEpoch;
return '${directory.path}/webrtc_recording_$timestamp.mp4';
}
Future<void> _startRecording() async {
if (!await _checkPermissions()) {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: Text('Storage permission required')),
);
return;
}
try {
final path = await _getRecordingPath();
await _mediaRecorder.start(path,videoTrack:
signaling!.localStream!.getVideoTracks().first,audioChannel:
RecorderAudioChannel.INPUT,);
// Add the stream to the recorder
_mediaRecorder.startWeb(signaling!.localStream!,onDataChunk: (value, islast){
print('onDataChunk: $value');
},mimeType: "video");
// await _mediaRecorder.addStream(_localRenderer);
setState(() {
_isRecording = true;
_recordingPath = path;
});
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: Text('Recording started: $path')), );
} catch (e) {
print('Failed to start recording: $e');
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: Text('Failed to start recording: $e')),);
}
}
_mediaRecorder.startWeb
, which implies that it's a web-only method.MediaRecorder
is supported on web currently.