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);
            }
        }
예제 #2
0
        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 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);
            }
        }
예제 #4
0
        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");
            }
        }