Почему не работает метод TakeSnapshot объекта LibVLCSharp.Shared.MediaPlayer из библиотеки LibVLCSharp - PullRequest
0 голосов
/ 12 июня 2019

Мне нужно сделать снимок видео в iOS, которое я получаю с веб-камеры «rtsp: // user: password@192.168.8.144: 88 / videoMain», используя библиотеку LibVLCSharp в моем проекте Xamarin.Forms.Но этот метод ничего не делает и возвращает true как результат.

Я попытался получить изображение из сохраненного пути к потоку, но после этого поток теряет значение.И я ищу в телефоне, и не нахожу новое изображение.Я думаю, что это ошибка в библиотеке, или я не понимаю, как она работает.

Я создаю объект для душа веб-камеры:

_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» с путем к файлу.Но в этом месте я не вижу никаких файлов.

Я не получаю ошибок, все в порядке, но у меня нет изображения.

...