コード例 #1
0
        public static async Task <VideoFileInfo> TranscodeVideo([ActivityTrigger] VideoFileInfo inputVideo,
                                                                TraceWriter log)
        {
            log.Info($"Transcoding {inputVideo.Location} to {inputVideo.BitRate}");

            // simulate doing the activity
            await Task.Delay(Delay);

            var transcodedLocation =
                $"{Path.GetFileNameWithoutExtension(inputVideo.Location)}-{inputVideo.BitRate}kbps.mp4";

            return(new VideoFileInfo
            {
                Location = transcodedLocation,
                BitRate = inputVideo.BitRate
            });
        }
コード例 #2
0
        public static async Task <VideoFileInfo[]> TranscodeVideo(
            [OrchestrationTrigger] DurableOrchestrationContext context,
            TraceWriter log)
        {
            var videoLocation  = context.GetInput <string>();
            var bitRates       = new[] { 1000, 2000, 3000, 4000 };
            var transcodeTasks = new List <Task <VideoFileInfo> >();

            foreach (var bitRate in bitRates)
            {
                var info = new VideoFileInfo
                {
                    Location = videoLocation,
                    BitRate  = bitRate
                };
                var task = context.CallActivityAsync <VideoFileInfo>("A_TranscodedVideo", info);
                transcodeTasks.Add(task);
            }

            var transcodedResults = await Task.WhenAll(transcodeTasks);

            return(transcodedResults);
        }