gpt4 book ai didi

ios - iOS 设备上的 Azure 媒体播放器

转载 作者:行者123 更新时间:2023-12-02 07:28:57 25 4
gpt4 key购买 nike

我正在 Web 应用程序中使用 Azure Media Player 流式传输 O365 视频,该应用程序只能在移动设备中使用。它适用于 WP 和 Android,但播放器卡在 iOS 上。

这是我的代码

client.DefaultRequestHeaders.Add("Authorization", "Bearer " + bearer);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

var response = await client.GetAsync($"{url}/GetPlaybackUrl('1')");
var content = await response.Content.ReadAsStringAsync();
var firstVal = JsonConvert.DeserializeObject<VideoToken>(content);

response = await client.GetAsync($"{url}/GetStreamingKeyAccessToken");
content = await response.Content.ReadAsStringAsync();
var secondVal = JsonConvert.DeserializeObject<VideoToken>(content);

客户端

<video id="newsVideoAMP" class="azuremediaplayer amp-default-skin amp-big-play-centered" tabindex="0"></video>

var initVideoPlayer = function (playbackUrl, streamingKeyAccessToken) {
try {
var myOptions = {
"nativeControlsForTouch": false,
controls: true,
autoplay: false,
techOrder: ["azureHtml5JS", "flashSS", "html5FairPlayHLS", "silverlightSS", "html5"],
logo: { enabled: false }
}
newsVideoPlayer = amp("newsVideoAMP", myOptions,
function () {
this.addEventListener(amp.eventName.error, function () {
window.alert('error');
console.log('Error: amp init');
var errorDetails = newsVideoPlayer.error();
window.alert(errorDetails);
var code = errorDetails.code;
var message = errorDetails.message;
$("#log").append("<li><span>code: " + code + " - detail: " + message + "</span></li>')");
});
});
newsVideoPlayer.src([
{
"src": playbackUrl,
"type": "application/vnd.ms-sstr+xml",
"protectionInfo": [
{
"type": "AES",
"authenticationToken": streamingKeyAccessToken
}
]
}]);
}
catch (err) {
console.log(err);
}
}

我认为该问题与视频编码有关。因此,我尝试使用 GetPlaybackUrl('0') (并避免下一个 token 请求),但播放器在 WP 和 Android 上停止工作,但在 iOS 上仍然无法工作。

回调函数中的记录器没有告诉我一些有用的信息,我也尝试过更改技术顺序。

是否有一个控制台来管理视频编码以避免 AES 算法和解密 token ?因为this doc解释一下 iOS 使用 HTML5 技术不会有 token 请求。我该如何解决?谢谢

最佳答案

我找到了在 iOS 设备上重现视频的解决方法。我没有使用 REST API,而是在页面中放置了一个嵌入视频的 iframe 元素。像这样(使用 MVC Razor):

var url = "{YourWebsiteUrl}/portals/hub/_layouts/15/VideoEmbedHost.aspx?chId={YourChannelId}&vId={YourVideoId}&width=853&height=480&autoPlay=false&showInfo=false";

<iframe width=853 height=480 id="videoframe" src="@url" allowfullscreen data-spresponsive style='position: absolute; top: 0; left: 0; right: 0; bottom: 0; height: 100%; max-width: 100%;'></iframe>

我从Office365 Video的视频页面中的“嵌入”菜单的弹出窗口中获取此代码。

如果其他人知道另一种(更好的)方法,请告诉我。谢谢

关于ios - iOS 设备上的 Azure 媒体播放器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43200953/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com