我创建了一个视频服务服务,在我的应用程序中是使用HLS格式进行视频和播放视频,我使用FlowPlayer。
我遇到的问题是,在我的M3U8文件中,我在TS文件的第一部分中都有此URL。
http://****/videos/2017/9/39594b34-e06e-415b-a176-c6971fe28190/b7f1d54e-4543-4852-9fbe-75693c2bfe58-3600.ts
这是我的HTML配置,用于FlowPlayer
<div id="hlsjsvod">
这是我的JavaScript配置,用于FlowPlayer
flowplayer("#hlsjsvod", {
splash: true,
aspectRatio: "16:9",
clip: {
// enable hlsjs in desktop Safari for manual quality selection
// CAVEAT: may cause decoding problems with some streams!
hlsjs: {
safari: true,
xhrSetup: function (xhr, url) {
url.replace("http","https")
}
},
sources: [
{
type: "application/x-mpegurl",
src: "http://****/videos/2017/8/a9b68f36-c229-47c9-850d-0af298692693/348b790b-0cc1-4817-b846-acef88f1067b-master.m3u8"
}
]
}
});
想要做的是将TS文件的http更改为http;
您可以在上面的代码中看到,我可以通过xhrsetup更改它。
每件事都不错,直到我想访问iOS,iPhone的Xhrsetup。因为iPhone使用本机HLS,所以它无法通过iOS中的XHRSETUP代码,我也希望能够在iOS中执行此操作。
有人有任何解决方案吗?
根本不可能。
MacOS上的Safari提供了MediaSource扩展名(MSE),例如HLS.JS或Bitmovin之类的玩家可以使用JavaScript来播放HLS,而不是Safari的本机HLS播放。
iOS上的Safari不提供MSE。结果,Ever HLS播放器必须使用Safari的本机HLS播放,这根本不提供干扰请求的方法。
您无法做到。此选项不可用。