コード例 #1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="VideoCaptionPage"/> class.
        /// </summary>
        /// <param name="video">YouTube video.</param>
        /// <param name="captionTrack">Captions.</param>
        public VideoCaptionPage(Video video, ClosedCaptionTrack captionTrack)
        {
            this.InitializeComponent();
            var vm = App.Container.Resolve <VideoCaptionViewModel>(new NamedParameter("video", video), new NamedParameter("captionTrack", captionTrack));

            this.BindingContext = vm;
        }
コード例 #2
0
        /// <summary>
        /// Convert closed captions to SRT format.
        /// </summary>
        /// <param name="closedCaptionTrack"></param>
        /// <returns></returns>
        /// <exception cref="ArgumentNullException">When closedCaptionTrack is null</exception>
        public static string ToSRT(this ClosedCaptionTrack closedCaptionTrack)
        {
            if (closedCaptionTrack == null)
            {
                throw new ArgumentNullException(nameof(closedCaptionTrack));
            }

            return(closedCaptionTrack.Captions.ToSRT());
        }
コード例 #3
0
        /// <summary>
        /// Convert closed captions to SRT format.
        /// </summary>
        /// <param name="closedCaptionTrack"></param>
        /// <returns></returns>
        /// <exception cref="ArgumentNullException">When closedCaptionTrack is null</exception>
        public static string ToSRT(this ClosedCaptionTrack closedCaptionTrack)
        {
            if (closedCaptionTrack == null)
            {
                Debug.LogWarning("Closed caption track is null ");
                return("");
                //throw new ArgumentNullException(nameof(closedCaptionTrack));
            }

            return(closedCaptionTrack.Captions.ToSRT());
        }
コード例 #4
0
        public static void IsSet(this Assert assert, ClosedCaptionTrack closedCaption)
        {
            Assert.IsNotNull(closedCaption);
            Assert.IsNotNull(closedCaption.Info);
            Assert.IsNotNull(closedCaption.Captions);

            foreach (var caption in closedCaption.Captions)
            {
                Assert.IsNotNull(caption);
                Assert.IsNotNull(caption.Text);
            }
        }
コード例 #5
0
        /// <summary>
        /// Initializes a new instance of the <see cref="VideoCaptionViewModel"/> class.
        /// </summary>
        /// <param name="video">YouTube video.</param>
        /// <param name="captionTrack">Captions.</param>
        /// <param name="properties">Platform Properties.</param>
        /// <param name="resource">Resources.</param>
        /// <param name="database">Database.</param>
        /// <param name="error">Error Handler.</param>
        /// <param name="navigation">Navigation Handler.</param>
        public VideoCaptionViewModel(
            Video video,
            ClosedCaptionTrack captionTrack,
            IPlatformProperties properties,
            IResourceHelper resource,
            IDatabase database,
            IErrorHandler error,
            INavigationHandler navigation)
            : base(properties, resource, database, error, navigation)
        {
            if (captionTrack == null)
            {
                throw new ArgumentNullException(nameof(captionTrack));
            }

            this.Video        = video;
            this.CaptionTrack = captionTrack;
            this.Captions     = captionTrack.Captions.ToList();
        }
コード例 #6
0
        public async Task ExecuteGetCaptionAsync()
        {
            IsBusy = true;

            try
            {
                Track = await YouTubeWebsite.GetClosedCaptionTrackAsync(trackInfo);

                AllCaptions = Track.Captions.ToList();
                Captions    = AllCaptions;
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
            finally
            {
                IsBusy = false;
            }
        }