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()); }
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()); }
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()); }
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()); }
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()); }