如何停止使用 UWP LibVlc 录制视频,而不是关闭应用程序?
How to stop record video using UWP LibVlc, not closing app?
我使用 UWP 项目(目标 1903,最小 1809)。
安装的 nugets:VideoLAN.LibVLC.UWP (3.3.0) LibVLCSharp (3.4.8)
目标:当我使用 mediaPlayer.Stop() 或 mediaPlayer.Dispose() 时,我尝试使用 RTSP 录制持续 N 分钟的视频,然后收到错误“未处理的 win32 异常发生在... “
构造try..catch 没抓到。
如果我像下面这样使用,我没有例外,但不是所有文件都被记录下来。我的意思是,例如:
创建了 10 个文件。但是当我关闭应用程序时,只记录了 8 个文件。如果应用程序已打开,则看不到正在录制的文件。
mediaPlayer = null;
mediaPlayer?.Dispose();
LibVLC = null;
LibVLC?.Dispose();
完整示例:
while(true)
{
var name = $"{DateTime.Now.ToString("HH\:mm\:ss").Replace(":", ".")}.ts";
var storageFileVideo = await storageFolderDate.CreateFileAsync(name);
var LibVLC = new LibVLC();
var mediaPlayer = new MediaPlayer(LibVLC);
using (var media = new Media(LibVLC, new Uri("RTSP address")))
{
media.AddOption($":sout=#file{{dst={storageFileVideo.Path}}}");
media.AddOption(":sout-keep");
mediaPlayer.Play(media);
// await Task.Delay(5000);
//mediaPlayer = null;
//mediaPlayer?.Dispose();
//LibVLC = null;
//LibVLC?.Dispose();
}
}
我也试过如下:
ThreadPool.QueueUserWorkItem(_ => { /*play and stop or dispose*/ });
我该如何解决?谢谢。
停止播放会停止录制。
问题已解决。错误已在版本 VideoLAN.LibVLC.UWP 3.3.1
中修复
我使用 UWP 项目(目标 1903,最小 1809)。 安装的 nugets:VideoLAN.LibVLC.UWP (3.3.0) LibVLCSharp (3.4.8)
目标:当我使用 mediaPlayer.Stop() 或 mediaPlayer.Dispose() 时,我尝试使用 RTSP 录制持续 N 分钟的视频,然后收到错误“未处理的 win32 异常发生在... “ 构造try..catch 没抓到。
如果我像下面这样使用,我没有例外,但不是所有文件都被记录下来。我的意思是,例如:
创建了 10 个文件。但是当我关闭应用程序时,只记录了 8 个文件。如果应用程序已打开,则看不到正在录制的文件。
mediaPlayer = null;
mediaPlayer?.Dispose();
LibVLC = null;
LibVLC?.Dispose();
完整示例:
while(true)
{
var name = $"{DateTime.Now.ToString("HH\:mm\:ss").Replace(":", ".")}.ts";
var storageFileVideo = await storageFolderDate.CreateFileAsync(name);
var LibVLC = new LibVLC();
var mediaPlayer = new MediaPlayer(LibVLC);
using (var media = new Media(LibVLC, new Uri("RTSP address")))
{
media.AddOption($":sout=#file{{dst={storageFileVideo.Path}}}");
media.AddOption(":sout-keep");
mediaPlayer.Play(media);
// await Task.Delay(5000);
//mediaPlayer = null;
//mediaPlayer?.Dispose();
//LibVLC = null;
//LibVLC?.Dispose();
}
}
我也试过如下:
ThreadPool.QueueUserWorkItem(_ => { /*play and stop or dispose*/ });
我该如何解决?谢谢。
停止播放会停止录制。
问题已解决。错误已在版本 VideoLAN.LibVLC.UWP 3.3.1
中修复