Exemple #1
0
        public static MediaTrack[] GetMediaTracks(string sourceUrl, string textTracks)
        {
            List <MediaTrack> mediaTracks = new List <MediaTrack>();

            if (!string.IsNullOrEmpty(textTracks))
            {
                JArray sourceTextTracks = JArray.Parse(textTracks);
                foreach (JToken sourceTextTrack in sourceTextTracks)
                {
                    MediaTrack mediaTrack = sourceTextTrack.ToObject <MediaTrack>();
                    mediaTrack.SourceUrl = GetSourceUrl(sourceUrl, mediaTrack.SourceUrl);
                    mediaTracks.Add(mediaTrack);
                }
            }
            return(mediaTracks.ToArray());
        }
Exemple #2
0
        private static MediaTrack[] GetTextTracks(MediaClient mediaClient, IAsset asset, LocatorType locatorType)
        {
            List <MediaTrack> textTracks    = new List <MediaTrack>();
            string            fileExtension = Constants.Media.FileExtension.WebVtt;

            string[] fileNames = MediaClient.GetFileNames(asset, fileExtension);
            foreach (string fileName in fileNames)
            {
                MediaTrack textTrack = new MediaTrack();
                textTrack.Type     = Constants.Media.Stream.TextTrackSubtitles;
                textTrack.Source   = mediaClient.GetLocatorUrl(asset, locatorType, fileName);
                textTrack.Language = GetLanguageCode(textTrack.Source);
                textTracks.Add(textTrack);
            }
            return(textTracks.ToArray());
        }
Exemple #3
0
        public static MediaTrack[] GetMediaTracks(MediaClient mediaClient, Asset asset)
        {
            List <MediaTrack> mediaTracks = new List <MediaTrack>();

            using (DatabaseClient databaseClient = new DatabaseClient(false))
            {
                string         collectionId = Constant.Database.Collection.MediaAssets;
                MediaAssetLink assetLink    = databaseClient.GetDocument <MediaAssetLink>(collectionId, asset.Name);
                if (assetLink != null)
                {
                    string trackType      = null;
                    string trackLabel     = null;
                    string trackSourceUrl = null;
                    if (assetLink.JobOutputs.ContainsKey(MediaTransformPreset.AudioIndexer))
                    {
                        trackType  = Constant.Media.Track.AudioTranscript.CaptionsType;
                        trackLabel = Constant.Media.Track.AudioTranscript.CaptionsLabel;
                        string insightId = assetLink.JobOutputs[MediaTransformPreset.AudioIndexer];
                        trackSourceUrl = mediaClient.IndexerGetCaptionsUrl(insightId);
                    }
                    else if (assetLink.JobOutputs.ContainsKey(MediaTransformPreset.AudioAnalyzer))
                    {
                        trackType  = Constant.Media.Track.AudioTranscript.SubtitlesType;
                        trackLabel = Constant.Media.Track.AudioTranscript.SubtitlesLabel;
                        string assetName = assetLink.JobOutputs[MediaTransformPreset.AudioAnalyzer];
                        string fileName  = Constant.Media.Track.AudioTranscript.FileName;
                        trackSourceUrl = mediaClient.GetDownloadUrl(assetName, fileName);
                    }
                    if (!string.IsNullOrEmpty(trackSourceUrl))
                    {
                        MediaTrack mediaTrack = new MediaTrack()
                        {
                            Type      = trackType,
                            Label     = trackLabel,
                            SourceUrl = trackSourceUrl
                        };
                        mediaTracks.Add(mediaTrack);
                    }
                }
            }
            return(mediaTracks.ToArray());
        }
Exemple #4
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());
        }
Exemple #5
0
        private static MediaTrack[] GetTextTracks(string tracks)
        {
            List <MediaTrack> textTracks = new List <MediaTrack>();

            if (!string.IsNullOrEmpty(tracks))
            {
                string[] tracksInfo = tracks.Split(Constant.TextDelimiter.Connection);
                foreach (string trackInfo in tracksInfo)
                {
                    string[]   track     = trackInfo.Split(Constant.TextDelimiter.Application);
                    MediaTrack textTrack = new MediaTrack()
                    {
                        Type      = track[0],
                        Label     = track[1],
                        SourceUrl = track[2]
                    };
                    textTracks.Add(textTrack);
                }
            }
            return(textTracks.ToArray());
        }