В настоящее время мне очень трудно интегрировать AAD с Azure Media Services. Мне нужно получить токен носителя из AAD, а затем передать этот токен в проигрыватель мультимедиа Azure для воспроизведения зашифрованного видео, но я всегда получаю следующую ошибку: Невозможно расшифровать зашифрованный источник видео. (0x20500004).
Вот два фрагмента кода, который я использую. Код С#:
string tenant = "xxxxxxxxxcom.onmicrosoft.com";
string clientId = "xxxxxxxx-xxxx-xxx-xxxx-xxxxxxxxxxx";
string clientSecret = "xxxXXXXXXXXXXXXXXXXXXXXXXXxxxx=";
var tokenCredentials = new AzureAdTokenCredentials(tenant, new AzureAdClientSymmetricKey(clientId, clientSecret), AzureEnvironments.AzureCloudEnvironment);
var tokenProvider = new AzureAdTokenProvider(tokenCredentials);
var token = tokenProvider.GetAccessToken();
Интеграция кода C# с Azure AAD
Версия «Microsoft.WindowsAzure.MediaServices.Client» — 4.1.
Код Asp.net/JavaScript:
<script>
var playerOptions = {
"nativeControlsForTouch": false,
controls: true,
autoplay: true,
width: "100%",
height: "auto",
techOrder: ["azureHtml5JS", "flashSS", "html5FairPlayHLS", "silverlightSS", "html5"],
logo: {
enabled: true
},
poster: "https://xxxxxxxxxx.blob.core.windows.net/assetxxxxxxxx-xxxx-410d-xxxx-7xxxxxxxxxxxx/xxxxx11563.jpg?sv=2015-07-08&sr=c&si=xxxxxx-xxxx-xxxxxxx-xxxxxx&sig=xxxxxxxxxxxxxxxb%2F%2FTlyHLU6DTcf%2FdfWMaMSqw%3D&se=2078-06-12T16%3A08%3A03Z",
plugins: {
ga: {
'eventsToTrack': ['playerConfig', 'loaded', 'playTime', 'percentsPlayed', 'start', 'end', 'play', 'pause', 'error', 'buffering', 'fullscreen', 'seek', 'bitrate'],
'debug': false
}
}
};
var playerSrc = [{
src: "http://xxxxxxxxx.streaming.mediaservices.windows.net/xxxxxx-xxx-xxxx-xxx-xxxx/xxxxxx.ism/manifest" + "(format=m3u8-aapl)",
"type": "application/vnd.ms-sstr+xml",
"protectionInfo": [{
"type": "AES",
"authenticationToken": "Bearer @ViewBag.Token"
}],
"streamingFormats":["SMOOTH","DASH"]
}];
</script>
Ссылка на Azure Player: https://ampdemo.azureedge.net/azuremediaplayer.html.