public void CreateAllVideos(List<AudioUoW> audios, string imageDirectory, string renderDirectory, AllVideosRenderedEventHandler allVideosRendered = null, VideoRenderedEventHandler renderCompleted = null, Action<string> feedbackMethod = null)
        {
            try
            {
                var imagePaths = Directory.GetFiles(imageDirectory).ToList();

                var sessionId = Guid.NewGuid().ToString();
                _sessions.Add(sessionId, new VideoRenderingSession() {Count = 0, AllVideosRendered = allVideosRendered});
                foreach (var audio in audios)
                {
                    audio.SessionId = sessionId;

                    var filename = MakeValidFileName(audio.Title);
                    var correctedFilename = _vps.GetCorrectFilename(filename);
                    audio.VideoPath = Path.Combine(renderDirectory, correctedFilename);

                    var list = new List<VideoRenderedEventHandler>();
                    if (renderCompleted != null)
                        list.Add(renderCompleted);
                    list.Add(RenderCompleted);

                    if (feedbackMethod != null)
                        feedbackMethod("Rendering started... " + audio.Title);

                    _sessions[sessionId].Count++;
                    _vps.CreateVideoFromImages(imagePaths, audio, audio.VideoPath, VideoQuality.FULLHD2_NTSC, list);
                }
            }
            catch (Exception ex)
            {
                Log.Error(ex.Message, ex);
            }
        }
示例#2
0
        public void CreateAllVideos(List <AudioUoW> audios, string imageDirectory, string renderDirectory, AllVideosRenderedEventHandler allVideosRendered = null, VideoRenderedEventHandler renderCompleted = null, Action <string> feedbackMethod = null)
        {
            try
            {
                var imagePaths = Directory.GetFiles(imageDirectory).ToList();

                var sessionId = Guid.NewGuid().ToString();
                _sessions.Add(sessionId, new VideoRenderingSession()
                {
                    Count = 0, AllVideosRendered = allVideosRendered
                });
                foreach (var audio in audios)
                {
                    audio.SessionId = sessionId;

                    var filename          = MakeValidFileName(audio.Title);
                    var correctedFilename = _vps.GetCorrectFilename(filename);
                    audio.VideoPath = Path.Combine(renderDirectory, correctedFilename);

                    var list = new List <VideoRenderedEventHandler>();
                    if (renderCompleted != null)
                    {
                        list.Add(renderCompleted);
                    }
                    list.Add(RenderCompleted);

                    if (feedbackMethod != null)
                    {
                        feedbackMethod("Rendering started... " + audio.Title);
                    }

                    _sessions[sessionId].Count++;
                    _vps.CreateVideoFromImages(imagePaths, audio, audio.VideoPath, VideoQuality.FULLHD2_NTSC, list);
                }
            }
            catch (Exception ex)
            {
                Log.Error(ex.Message, ex);
            }
        }