public void WhenCreateClientIsCalledThenMediaServicesClientIsReturned() { const string AccountName = "myAccount"; const string AccountKey = "myKey"; var mediaServices = new AzureMediaServices(); Assert.IsNotNull(mediaServices); using (ShimsContext.Create()) { string providedAccountName = null; string providedAccountKey = null; ShimAzureMediaServicesClient.ConstructorStringString = (client, accountName, accountKey) => { providedAccountName = accountName; providedAccountKey = accountKey; }; mediaServices.CreateClient(AccountName, AccountKey); Assert.AreEqual(AccountName, providedAccountName); Assert.AreEqual(AccountKey, providedAccountKey); } }
public static void Run( [QueueTrigger(QueueNames.MediaToEncode)] MediaMetadata mediaMetadataFromQueue, [Queue(QueueNames.MediaToPublish)] out MediaMetadata mediaMetadataToPublish, TraceWriter log) { log.Info($"{nameof(EncodeMediaAsset)} triggered"); IAsset asset = null; try { asset = AzureMediaServices.GetAsset(mediaMetadataFromQueue); var newAsset = AzureMediaServices.EncodeToAdaptiveBitrateMP4Set(asset, mediaMetadataFromQueue.Title); mediaMetadataToPublish = new MediaMetadata { FileName = newAsset.Name, MediaServicesAssetId = newAsset.Id, MediaAssetUri = newAsset.Uri, Title = mediaMetadataFromQueue.Title, UploadedAt = mediaMetadataFromQueue.UploadedAt, }; } catch (Exception e) { log.Info($"Error {e.Message}"); throw e; } finally { asset?.Delete(false); log.Info($"{nameof(EncodeMediaAsset)} completed"); } }
public static void Run( [QueueTrigger(QueueNames.MediaToPublish)] MediaMetadata mediaMetadataFromQueue, [Queue(QueueNames.MediaToAddToCosmosDb)] out MediaMetadata mediaMetadataToAddToCosmosDb, TraceWriter log) { log.Info($"{nameof(PublishMediaAsset)} triggered"); IAsset asset = null; try { mediaMetadataToAddToCosmosDb = mediaMetadataFromQueue; asset = AzureMediaServices.GetAsset(mediaMetadataFromQueue); log.Info($"Publishing Media"); var locator = AzureMediaServices.PublishMedia(asset, TimeSpan.FromDays(999)); log.Info($"Generating Streaming Endpoint"); AzureMediaServices.CreateStreamingEndpoint(); log.Info($"Generating Urls"); var(manifestUri, hlsUri, mpegDashUri) = AzureMediaServices.BuildStreamingURLs(asset, locator); mediaMetadataToAddToCosmosDb.BlobStorageMediaUrl = $"{mediaMetadataToAddToCosmosDb.MediaAssetUri}/{AzureMediaServices.GetMP4FileName(asset)}"; mediaMetadataToAddToCosmosDb.ManifestUrl = manifestUri; mediaMetadataToAddToCosmosDb.HLSUrl = hlsUri; mediaMetadataToAddToCosmosDb.MPEGDashUrl = mpegDashUri; } catch (Exception e) { log.Info($"Error: {e.Message}"); asset?.Delete(); throw e; } finally { log.Info($"{nameof(PublishMediaAsset)} completed"); } }