为什么库LibVLCSharp的对象LibVLCSharp.Shared.MediaPlayer的方法TakeSnapshot不起作用

时间:2019-06-12 16:02:15

标签: xamarin.forms xamarin.ios libvlcsharp

我需要使用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”。但是在那个位置我看不到任何文件。

我没有收到错误,一切都很好,但是我没有照片。

0 个答案:

没有答案