Xamarin CrossMediaManager Video работает только при первом запуске - PullRequest
0 голосов
/ 10 сентября 2018

Я использую CrossMediaManager для воспроизведения видео в папке загрузки вкладок, путь воспроизведения видео - file:///storage/emulated/0/Download/DilmahStory.mp4

проблема в том, что когда я перемещаю страницу видео на другую страницу и возвращаюсь на страницу видео, видео приостанавливается. Требуется запустить видео с самого начала, когда каждый раз пользователь открывает страницу видео.

модель просмотра видео страницы, как показано ниже

 public class GuestVideoViewModel : ContextViewModelBase
    {
        private string videoUrl = "file:///storage/emulated/0/Download/DilmahStory.mp4";
        private TimeSpan seekTime;
        public GuestVideoViewModel(IAppContext context) : base(context)
        {
            Title = "Guest Vedio Page";
            ActionCommand = new Command(OnActionCommand);
            PageAppearingCommand = new Command(OnPageAppearingCommand);
            PageDisappearingCommand = new Command(OnPageDisappearingCommand);
        }

        public string GotoMenuName { get; set; } = "START ORDER";

        public ICommand ActionCommand { get; }

        private void OnActionCommand()
        {
            Navigator.PushAsync<DashboardMainFirstViewMode>();
        }

        private async void OnPageDisappearingCommand()
        {
            seekTime = CrossMediaManager.Current.Position;
            await CrossMediaManager.Current.Stop();
            CrossMediaManager.Current.StatusChanged -= CurrentOnStatusChanged;

           // 
        }

        private async void OnPageAppearingCommand()
        {
            if (await GetStoragePermisson())
            {
                CrossMediaManager.Current.StatusChanged += CurrentOnStatusChanged;

                await CrossMediaManager.Current.Play(videoUrl, MediaFileType.Video);

            }
        }

        private void CurrentOnStatusChanged(object sender, StatusChangedEventArgs e)
        {

            Debug.WriteLine($"MediaManager Status: {e.Status}");

        }

        private async Task<bool> GetStoragePermisson()
        {
            var status = await CrossPermissions.Current.CheckPermissionStatusAsync(Permission.Storage);
            if (status != PermissionStatus.Granted)
            {
                var results = await CrossPermissions.Current.RequestPermissionsAsync(new[] { Permission.Storage });
                status = results[Permission.Storage];
            }
            return status == PermissionStatus.Granted;
        }
    }
} 

Понятия не имею, почему видео не запускается с самого начала при открытии vediopage. Буду очень признателен, если кто-нибудь подскажет, что мне следует изменить на OnPageAppearingCommand() или OnPageDisappearingCommand(), Заранее спасибо за вашу поддержку.

...