Пример #1
0
        public static MediaPublished PublishInsight(MediaPublish insightPublish)
        {
            string accountId = insightPublish.PartitionKey;
            string indexId   = insightPublish.RowKey;

            IndexerClient indexerClient = new IndexerClient(accountId, insightPublish.MediaAccount.IndexerKey);
            JObject       index         = indexerClient.GetIndex(indexId, null, false);

            MediaPublished mediaPublished = null;
            string         assetId        = IndexerClient.GetAssetId(index);

            if (!string.IsNullOrEmpty(assetId))
            {
                MediaClient mediaClient = new MediaClient(insightPublish.MediaAccount);
                IAsset      asset       = mediaClient.GetEntityById(MediaEntity.Asset, assetId) as IAsset;

                DocumentClient documentClient = new DocumentClient();
                index = DocumentClient.SetContext(index, insightPublish.MediaAccount, assetId);
                string documentId = UpsertDocument(documentClient, index, MediaProcessor.VideoIndexer, asset, null);

                mediaPublished = new MediaPublished
                {
                    AssetId       = assetId,
                    IndexId       = indexId,
                    DocumentId    = documentId,
                    UserId        = insightPublish.UserId,
                    MobileNumber  = insightPublish.MobileNumber,
                    StatusMessage = string.Empty
                };
            }
            return(mediaPublished);
        }
Пример #2
0
        private static MediaTrack[] GetTextTracks(MediaClient mediaClient, IndexerClient indexerClient, IAsset asset)
        {
            List <MediaTrack> textTracks = new List <MediaTrack>();
            WebClient         webClient  = new WebClient();
            string            documentId = DocumentClient.GetDocumentId(asset, out bool videoIndexer);

            if (!string.IsNullOrEmpty(documentId) && videoIndexer && indexerClient.IndexerEnabled)
            {
                string             webVttUrl      = indexerClient.GetWebVttUrl(documentId, null);
                HttpRequestMessage requestMessage = webClient.GetRequest(HttpMethod.Get, webVttUrl);
                string             webVttData     = webClient.GetResponse <string>(requestMessage);
                JObject            index          = indexerClient.GetIndex(documentId, null, false);
                string             languageLabel  = IndexerClient.GetLanguageLabel(index);
                MediaTrack         textTrack      = new MediaTrack()
                {
                    Type      = GetTextTrackType(webVttData),
                    Label     = languageLabel,
                    SourceUrl = webVttUrl,
                };
                textTracks.Add(textTrack);
            }
            string[] webVttUrls = mediaClient.GetWebVttUrls(asset);
            for (int i = 0; i < webVttUrls.Length; i++)
            {
                string             webVttUrl      = webVttUrls[i];
                HttpRequestMessage requestMessage = webClient.GetRequest(HttpMethod.Get, webVttUrl);
                string             webVttData     = webClient.GetResponse <string>(requestMessage);
                string             languageLabel  = Language.GetLanguageLabel(webVttUrl);
                if (!string.IsNullOrEmpty(webVttUrl))
                {
                    MediaTrack textTrack = new MediaTrack()
                    {
                        Type      = GetTextTrackType(webVttData),
                        Label     = languageLabel,
                        SourceUrl = webVttUrl,
                    };
                    textTracks.Add(textTrack);
                }
            }
            return(textTracks.ToArray());
        }