コード例 #1
0
        public FtpMediaStream(IngestMedia media, bool forWrite)
        {
            if (media?.Directory == null)
            {
                throw new ApplicationException();
            }
            var uri = new Uri(media.FullPath);

            _client = new System.Net.FtpClient.FtpClient
            {
                Credentials = ((IngestDirectory)media.Directory).GetNetworkCredential(),
                Host        = uri.Host
            };
            try
            {
                _client.Connect();
                _ftpStream = forWrite ?
                             _client.OpenWrite(uri.LocalPath) :
                             _client.OpenRead(uri.LocalPath);
            }
            catch
            {
                _client.Dispose();
                throw;
            }
        }
コード例 #2
0
        public IngestMedia FindMedia(string clipName)
        {
            string      clipNameLowered = clipName.ToLower();
            IngestMedia result          = (IngestMedia)FindMediaFirst(f =>
            {
                var fileNameWithoutExtension = Path.GetFileNameWithoutExtension(Path.GetFileName(f.FileName));
                return(fileNameWithoutExtension != null && fileNameWithoutExtension.ToLower() == clipNameLowered);
            });

            if (result == null & IsWAN)
            {
                string[] files = Directory.GetFiles(Folder, string.Format("{0}.*", clipName));
                if (files.Length > 0)
                {
                    string fileName = files[0];
                    result           = (IngestMedia)CreateMedia(fileName);
                    result.MediaName = Path.GetFileNameWithoutExtension(fileName);
                }
            }
            return(result);
        }
コード例 #3
0
 // parse files from BMD's MediaExpress
 private void _scanXML(string xmlFileName)
 {
     foreach (var fd in FindMediaList(f => f is IngestMedia && ((IngestMedia)f).BmdXmlFile == xmlFileName))
     {
         ((IngestMedia)fd).BmdXmlFile = string.Empty;
     }
     try
     {
         XmlDocument doc = new XmlDocument();
         doc.Load(xmlFileName);
         try
         {
             XmlNodeList clips = doc.SelectNodes(@"/xmeml/clip|/xmeml/bin/children/clip");
             if (clips == null)
             {
                 return;
             }
             foreach (XmlNode clip in clips)
             {
                 string      fileName = Path.GetFileName((new Uri(Uri.UnescapeDataString(clip.SelectSingleNode(@"file/pathurl").InnerText))).LocalPath);
                 IngestMedia m        = (IngestMedia)FindMediaFirst(f => f.FileName == fileName);
                 if (m != null)
                 {
                     m.TcStart      = clip.SelectSingleNode(@"file/timecode/string").InnerText.SMPTETimecodeToTimeSpan(new RationalNumber(int.Parse(clip.SelectSingleNode(@"rate/timebase").InnerText), 1));
                     m.TcPlay       = m.TcStart;
                     m.Duration     = long.Parse(clip.SelectSingleNode(@"duration").InnerText).SMPTEFramesToTimeSpan(new RationalNumber(int.Parse(clip.SelectSingleNode(@"rate/timebase").InnerText), 1));
                     m.DurationPlay = m.Duration;
                     m.BmdXmlFile   = xmlFileName;
                 }
             }
         }
         catch (NullReferenceException) { }
         catch (ArgumentNullException) { }
     }
     catch (Exception) { }
 }