Example #1
0
    private void LoadData()
    {
        TextReader reader;
        string     level   = Game.Current().Level();
        TextAsset  txt     = (TextAsset)Resources.Load("Songs/" + level + "_Asynch", typeof(TextAsset));
        string     content = txt.text;
        string     line;

        reader = new StringReader(content);
        line   = reader.ReadLine();

        while (line != null)
        {
            if (line.Contains("@"))
            {
                string[]  slices    = line.Split('@');
                TimedText timedText = new TimedText();
                timedText.time = float.Parse(slices[0]);
                timedText.text = slices[1];
                warnings.Add(timedText);
            }
            else if (line.Contains("#"))
            {
                string timeString = line.Replace("#", "");
                float  time       = float.Parse(timeString);
                blinks.Add(time);
            }
            line = reader.ReadLine();
        }
    }
        private static TimedText getTimedText(string captionTracks, string titel)
        {
            //https://www.youtube.com/api/timedtext?v=h0e2HAPTGF4&lang=en&name=CC&fmt=json3
            // List<VideoDetails> list = new List<VideoDetails>();
            TimedText timeText = new TimedText();

            //var url = string.Format("https://www.youtube.com/api/timedtext?v={0}&lang=en&fmt={1}", videoId, "json3");
            var             url      = string.Format(captionTracks + "&fmt={0}", "json3");
            HttpWebRequest  request  = (HttpWebRequest)WebRequest.Create(url);
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();

            if (response.StatusCode == HttpStatusCode.OK)
            {
                Stream       receiveStream = response.GetResponseStream();
                StreamReader readStream    = null;
                if (response.CharacterSet == null)
                {
                    readStream = new StreamReader(receiveStream);
                }
                else
                {
                    readStream = new StreamReader(receiveStream, Encoding.GetEncoding(response.CharacterSet));
                }
                string data = readStream.ReadToEnd();
                response.Close();

                readStream.Close();

                ////////////////////////
                timeText = JsonConvert.DeserializeObject <TimedText>(data);
            }

            return(timeText);
        }
Example #3
0
        public Subtitles Build()
        {
            TimedText processed = Reader.Read().Apply(this.Processing);

            TextDurationMeter       durationMeter = new TextDurationMeter(processed);
            IEnumerable <TimedLine> subtitles     = durationMeter.MeasureLines();

            return(new Subtitles(subtitles));
        }
        /// <summary> Adds a new TimedTextControl to the Announcement list. </summary>
        /// <param name="sender"> The sender. </param>
        /// <param name="e"> The event arguments. </param>
        private void AddAnnouncementClicked(object sender, RoutedEventArgs e)
        {
            var text = new TimedText();
            var ctrl = new TimedTextControl {
                TimedText = text
            };

            ctrl.RowDeleted += this.AnnouncementRowDeleted;

            this.viewModel.AnnouncementText.Add(text);
            lbxAnnouncements.Items.Add(ctrl);
        }
        /// <summary> Adds a new TimedTextControl to the Subbar list. </summary>
        /// <param name="sender"> The sender. </param>
        /// <param name="e"> The event arguments. </param>
        private void AddSubbarClicked(object sender, RoutedEventArgs e)
        {
            var text = new TimedText();
            var ctrl = new TimedTextControl {
                TimedText = text
            };

            ctrl.RowDeleted += this.SubbarRowDeleted;

            this.viewModel.SubbarText.Add(text);
            spSubbar.Items.Add(ctrl);
        }
        /// <summary> The add text clicked. </summary>
        /// <param name="sender"> The sender. </param>
        /// <param name="e"> The event arguments. </param>
        private void AddTextClicked(object sender, RoutedEventArgs e)
        {
            var text = new TimedText();
            var ctrl = new TimedTextControl {
                TimedText = text
            };

            ctrl.RowDeleted += this.RowDeleted;

            this.lstItems.Items.Add(ctrl);
            this.ViewModel.Add(text);
        }
        public bool DownloadSubtitel(VideoDetails videoDetails, List <CaptionTracks> listCaptionTracks)
        {
            string url = "";

            if (listCaptionTracks == null || listCaptionTracks.Count == 0)
            {
                return(false);
            }
            else
            {
                url = listCaptionTracks[0].baseUrl;
            }
            TimedText timeText = getTimedText(url, videoDetails.Titel);

            if (timeText != null)
            {
                FileStream file = new FileStream(videoDetails.VideoPath + Helper.RemoveSpatialCharacter(videoDetails.Titel) + ".srt",
                                                 FileMode.Create,
                                                 FileAccess.Write);


                StringBuilder builder = new StringBuilder();
                for (int i = 0; i < timeText.events.Count; i++)
                {
                    var _event = timeText.events[i];

                    builder.AppendLine((i + 1).ToString());

                    builder
                    .Append(Helper.MilliSeconds(_event.tStartMs))
                    .Append(" --> ")
                    .AppendLine(Helper.MilliSeconds(_event.tStartMs + _event.dDurationMs));

                    if (_event.segs != null && _event.segs.Count != 0)
                    {
                        builder.AppendLine(_event.segs[0].utf8);
                    }
                    builder.AppendLine();
                }

                UnicodeEncoding uniencoding = new UnicodeEncoding();
                byte[]          result      = uniencoding.GetBytes(builder.ToString());

                file.Write(result, 0, result.Length);
                //---------

                file.Close();
                file.Dispose();
            }
            return(true);
        }
Example #8
0
 public void OnTimedText(MediaPlayer player, TimedText text)
 {
 }
 public void PushClip(TimedText.Styling.Rectangle rectangle)
 {
     // to do -- add a sub layoutHost with clip set, into which drawing will occur.
   }
 public void DrawText(string text, Font font, Color fill, TextDecorationAttributeValue decoration, double startX, double startY, TimedText.Informatics.MetadataInformation data)
 {
     sb.Append(text);
 }
 public void DrawOutlineText(string text, Font font, Color fill, TimedText.Styling.TextOutline outline, double startX, double startY, TimedText.Informatics.MetadataInformation data)
 {
     //Console.WriteLine(s);
     sb.Append(text);
 }
Example #12
0
 /// <summary>
 /// Invoke
 /// </summary>
 public void OnTimedText(MediaPlayer mediaPlayer, TimedText text)
 {
     Invoke(mediaPlayer, new TimedTextEventArgs(text));
 }
 internal TextDurationMeter(TimedText text)
 {
     this.Text = text;
 }
Example #14
0
 public TimedTextEventArgs(TimedText text)
 {
     Text = text;
 }