Open carlomigueldy opened 6 months ago
This works for me. But yom must void Function for getPermission Storage.
Future<void> _initializePlayer(String url) async {
final directory = await getExternalStorageDirectory();
if (directory != null) {
final mediaDir = Directory('${directory.path}/Media');
if (!(await mediaDir.exists())) {
await mediaDir.create(recursive: true);
}
recordingPaths = '${mediaDir.path}';
}
// Иницилизация контроллера
//
final eventController = Get.put(EventVideoController());
// Создание экзепляра _vlc player controller Network
// Их может быть несколько
// Когда делал очередь, была возможность создать несколько
// Экзепляров контроллера со своим url но нашелся способ проигрывания очереде
// через подмену по индексу ++ currentindex
_vlcViewController = VlcPlayerController.network(
url,
hwAcc: HwAcc.auto,
autoPlay: true,
options: VlcPlayerOptions(
// Задержка кэширования
advanced: VlcAdvancedOptions([VlcAdvancedOptions.networkCaching(5000)]),
rtp: VlcRtpOptions([VlcRtpOptions.rtpOverRtsp(true)]),
http: VlcHttpOptions([VlcHttpOptions.httpReconnect(true)]),
// sout: VlcStreamOutputOptions([VlcStreamOutputOptions.sout])
sout: VlcStreamOutputOptions([
// VlcStreamOutputOptions.soutMuxCaching(1500),
]),
extras: ['--sout=#file{dst=$recordingPaths}', '--no-sout-all', '--sout-keep'],
// extras:VlcRecord([
// VlcOption.key("sout", "#file{dst=$recordingPath}"),
// ])
// isBuffering: VlcIsBufferingOptions([VlcIsBufferingOptions)]),
),
);
Future<void> _stopRecording() async {
await requestPermissions();
if(_controller.value.playingState == PlayingState.playing){
await _controller.stopRecording();
}
setState(() {
isRecording = false;
});
}
Future<void> _startRecording(recordingPaths) async {
await requestPermissions();
await _controller.startRecording(recordingPaths);
setState(() {
isRecording = true;
});
}
It returns true that it is starting the recording, but when ending the recording it does not save the file in specified saveDirectory
Also checked with File(recordPath).exists() it returns false, no file is saved after ending the recording