コード例 #1
0
    // --------------------------------------------------------------------
    // 素材動画からパーツを作成
    // --------------------------------------------------------------------
    private void GenerateParts(List <Media> oVideoMedias, Double oHead, Double oTail, Double oInterval, out List <VideoPart> oVideoParts)
    {
        oVideoParts = new List <VideoPart>();

        foreach (Media aMedia in oVideoMedias)
        {
            VideoStream aVideoStream = aMedia.GetVideoStreamByIndex(0);
            Double      aMediaLen    = aMedia.Length.ToMilliseconds();
            Double      aPos         = oHead;
            while (aPos <= aMediaLen - oTail - oInterval)
            {
                VideoPart aVideoPart = new VideoPart();
                aVideoPart.VideoStream = aVideoStream;
                aVideoPart.Offset      = new Timecode(aPos);
                oVideoParts.Add(aVideoPart);

                aPos += oInterval;
            }
        }

        if (oVideoParts.Count == 0)
        {
            throw new Exception("素材動画からパーツを作成できませんでした。\n間隔や除外時間が長すぎないか確認して下さい。");
        }
    }
コード例 #2
0
ファイル: Maker.cs プロジェクト: CreativeMD/VideoPresentation
 private void add_video_Click(object sender, EventArgs e)
 {
     if (addvideo.ShowDialog() == DialogResult.OK)
     {
         foreach (var item in addvideo.FileNames)
         {
             VideoPart entry = new VideoPart(item);
             tempPresentation.Entries.Add(entry);
             addEvent(entry);
             markModified();
         }
     }
 }
コード例 #3
0
ファイル: Maker.cs プロジェクト: CreativeMD/VideoPresentation
        public void addEvent(VideoPart entry)
        {
            Panel box = new Panel();

            box.BorderStyle = BorderStyle.FixedSingle;
            box.Height      = 100;
            box.Width       = videoentries.Width - 28;
            Label label = new Label();

            label.AutoSize = true;
            label.Text     = entry.Filename;
            box.Controls.Add(label);
            CheckBox check = new CheckBox();

            check.AutoSize        = true;
            check.Text            = "Loop";
            check.Top             = 30;
            check.Checked         = entry.Loop;
            check.CheckedChanged += delegate
            {
                entry.Loop = check.Checked;
            };
            box.Controls.Add(check);

            CheckBox stop = new CheckBox();

            stop.AutoSize        = true;
            stop.Text            = "Stop at the end";
            stop.Top             = 60;
            stop.Checked         = entry.StopAtEnd;
            stop.CheckedChanged += delegate
            {
                entry.StopAtEnd = stop.Checked;
            };
            box.Controls.Add(stop);

            Button remove = new Button();

            remove.Width    = 20;
            remove.AutoSize = true;
            remove.Text     = "x";
            remove.Left     = box.Width - 40;
            remove.Click   += delegate
            {
                videoentries.Controls.Remove(box);
                tempPresentation.Entries.Remove(entry);
                markModified();
            };
            box.Controls.Add(remove);
            videoentries.Controls.Add(box);
        }
コード例 #4
0
 public void UploadVideo(VideoPart part, Guid ApplicatId, Guid TransactionCode)
 {
     // ... some process ...
 }
コード例 #5
0
 private void Save(object arg)
 {
     IsBusy = true;
     try
     {
         var service     = serviceLocator.GetInstance <ITrainingSetService>();
         var trainingSet = new TrainingSet();
         trainingSet.TrainingSetTemplateId = SelectedTemplate.Id;
         trainingSet.Title = Title;
         if (UseSingleVideo)
         {
             var part = new VideoPart();
             part.VideoId = Video.Id;
             part.From    = VideoFrom;
             part.To      = VideoTo;
             trainingSet.VideoParts.Add(part);
         }
         if (UseMultipleVideos)
         {
             foreach (var set in SelectedTemplate.Sets)
             {
                 if (set.UseSingleVideo)
                 {
                     var part = new VideoPart();
                     part.VideoId = set.Video.Id;
                     part.From    = set.VideoFrom;
                     part.To      = set.VideoTo;
                     trainingSet.VideoParts.Add(part);
                 }
                 if (set.UseMultipleVideos)
                 {
                     foreach (var interval in set.Intervals)
                     {
                         var part = new VideoPart();
                         part.VideoId = interval.Video.Id;
                         part.From    = interval.VideoFrom;
                         part.To      = interval.VideoTo;
                         trainingSet.VideoParts.Add(part);
                     }
                 }
             }
         }
         service.CreateTrainingSetError += (sender, e) =>
         {
             IsBusy = false;
             throw e.Value;
         };
         service.TrainingSetCreated += (sender, e) =>
         {
             if (e.Value.Status == CreateTrainingSetStatus.Success)
             {
                 ApplicationUser.CurrentUser.Videos.Add(e.Value.TrainingSet);
                 foreach (var set in SelectedTemplate.Sets)
                 {
                     set.ClearDesignData();
                 }
                 foreach (var interval in SelectedTemplate.Intervals)
                 {
                     interval.ClearDesignData();
                 }
                 IsBusy = false;
                 Hide();
                 eventAggregator.GetEvent <VideoCreatedEvent>().Publish(e.Value.TrainingSet);
             }
             else
             {
                 dialogFacade.Alert(DesignerResources.ErrorCreatingWorkout);
                 IsBusy = false;
             }
         };
         service.CreateTrainingSet(trainingSet);
     }
     catch
     {
         IsBusy = false;
         throw;
     }
 }