Ejemplo n.º 1
0
        private async Task <DashManifest> GetDashManifestAsync(
            string dashManifestUrl,
            IReadOnlyList <ICipherOperation> cipherOperations)
        {
            var signature = DashManifest.TryGetSignatureFromUrl(dashManifestUrl);

            if (!string.IsNullOrWhiteSpace(signature))
            {
                signature       = cipherOperations.Decipher(signature);
                dashManifestUrl = Url.SetRouteParameter(dashManifestUrl, "signature", signature);
            }

            return(await DashManifest.GetAsync(_httpClient, dashManifestUrl));
        }
        /// <summary>
        /// <para>
        /// Starts the DASH manifest creation and periodically polls its status until it reaches a final state
        /// </para>
        /// <para>API endpoints:
        /// https://bitmovin.com/docs/encoding/api-reference/sections/manifests#/Encoding/PostEncodingManifestsDashStartByManifestId
        /// <br />
        /// https://bitmovin.com/docs/encoding/api-reference/sections/manifests#/Encoding/GetEncodingManifestsDashStatusByManifestId
        /// </para>
        /// </summary>
        /// <param name="dashManifest">The DASH manifest to be created</param>
        /// <exception cref="SystemException"></exception>
        private async Task ExecuteDashManifestCreation(DashManifest dashManifest)
        {
            await _bitmovinApi.Encoding.Manifests.Dash.StartAsync(dashManifest.Id);

            ServiceTaskStatus serviceTaskStatus;

            do
            {
                await Task.Delay(1000);

                serviceTaskStatus = await _bitmovinApi.Encoding.Manifests.Dash.StatusAsync(dashManifest.Id);
            } while (serviceTaskStatus.Status != Status.FINISHED && serviceTaskStatus.Status != Status.ERROR);

            if (serviceTaskStatus.Status == Status.ERROR)
            {
                LogTaskErrors(serviceTaskStatus);
                throw new SystemException("DASH manifest creation failed");
            }

            Console.WriteLine("DASH manifest creation finished successfully");
        }