我需要使用Xamarin.Forms项目中的LibVLCSharp库对iOS中的视频进行快照,这是从网络摄像头“ rtsp:// user:password@192.168.8.144:88 / videoMain”接收到的。但是此方法不执行任何操作,并返回结果的真值。
我尝试从保存的路径获取图像到流,但是这样做后流为null。而且我在电话中搜索,但没有找到新图片。我认为是库中的错误,或者我不知道它是如何工作的。
我为摄像头淋浴创建对象:
_libvlc = new LibVLC();
CamMediaPlayer = new MediaPlayer(_libvlc) { Mute = true };
CamMediaPlayer.Play(new Media(_libvlc, VIDEO_URL, FromType.FromLocation));
然后用命令创建快照按钮:
private void SnapshotCommandExecute(object parameters)
{
if (CamMediaPlayer != null)
{
string fileName = "01.jpg";
string path = DependencyService.Get<IFileService>().GetMyPicturesPath(fileName);
try
{
CamMediaPlayer.SnapshotTaken += CamMediaPlayer_SnapshotTaken;
//bool result = CamMediaPlayer.TakeSnapshot(0, fileName, 0, 0);
bool result = CamMediaPlayer.TakeSnapshot(0, path, 100, 100);
Assembly assembly = typeof(CameraViewModel).GetTypeInfo().Assembly;
Stream stream = assembly.GetManifestResourceStream(path); // is null anytime
if (stream != null)
{
DependencyService.Get<IFileService>().SavePhotosWithStream(stream);
}
if (result) // If I see video, result after save is true
{
Application.Current.MainPage.DisplayAlert(
"Image saved", "Image saved", Properties.Resources.Ok);
}
else
{
Application.Current.MainPage.DisplayAlert(
"Image failed", "Image failed", Properties.Resources.Ok);
}
}
catch (Exception ex)
{
Debug.WriteLine(ex.Message);
}
}
}
我收到带有文件路径的事件“ SnapshotTaken”。但是在那个位置我看不到任何文件。
我没有收到错误,一切都很好,但是我没有照片。