gpt4 book ai didi

javascript - Chromecast DRM 示例

转载 作者:行者123 更新时间:2023-11-28 07:58:15 25 4
gpt4 key购买 nike

我指的是 Google 给出的这个示例(特别是 sender.js 文件)( https://github.com/googlecast/CastMediaPlayerStreamingDRM/blob/master/sender.js )。我正在尝试播放 http://storage.googleapis.com/wvmedia/cenc/tears.mpd 文件,该文件是 DRM,并且我按照定义传递许可证 URL http://widevine-proxy.appspot.com/proxy在示例中的 sender.js 文件中。

我的发件人是 Android(我正在使用 CastCompanionLibrary)。这就是我在 Android 中发送它的方式:

mCastManager.sendDataMessage("http://playready.directtaps.net/pr/svc/rightsmanager.asmx");
mCastManager.startCastControllerActivity(LocalPlayerActivity.this, media, 0, true);

这就是我在自定义接收器中接收许可证 URL 的方式:

messageBus = castReceiverManager.getCastMessageBus(--NAME SPACE--);

messageBus.onMessage = function(event) {

console.log(event['data']);
licenseURL = event['data'];
console.log(licenseURL);

}

到目前为止,我已经调试完毕并将licenseURL 设置为Android 发送者发送的许可证URL。它正在接收器中正确接收许可证URL。然后在我的 onLoad 方法中执行以下操作。

 mediaManager.onLoad = function(event) {

if(mediaPlayer !== null) {
mediaPlayer.unload(); // Ensure unload before loading again
}

if (event.data['media'] && event.data['media']['contentId']) {
var url = event.data['media']['contentId'];

mediaHost = new cast.player.api.Host({
'mediaElement': mediaElement,
'url': url
});

mediaHost.onError = function (errorCode) {
console.error('### HOST ERROR - Fatal Error: code = ' + errorCode);

if (mediaPlayer !== null) {
mediaPlayer.unload();
}
}

if(licenseURL){

console.log("##License URL is not null");
mediaHost.licenseURL = licenseURL;
}
var initialTimeIndexSeconds = event.data['media']['currentTime'] || 0;

var protocol = null;

var parser = document.createElement('a');
parser.href = url;

var ext = ext = parser.pathname.split('.').pop();
if (ext === 'm3u8') {
protocol = cast.player.api.CreateHlsStreamingProtocol(mediaHost);
} else if (ext === 'mpd') {
protocol = cast.player.api.CreateDashStreamingProtocol(mediaHost);
} else if (ext === 'ism/') {
protocol = cast.player.api.CreateSmoothStreamingProtocol(mediaHost);
}
console.log('### Media Protocol Identified as ' + ext);


if (protocol === null) {

mediaManager['onLoadOrig'](event); // Call on the original callback
} else {

mediaPlayer = new cast.player.api.Player(mediaHost);
mediaPlayer.load(protocol, initialTimeIndexSeconds);
}
}
}

但是当我这样做时,我收到错误:

XMLHttpRequest cannot load http://storage.googleapis.com/wvmedia/cenc/tears.mpd. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'https://dl.dropboxusercontent.com' is therefore not allowed access.
### HOST ERROR - Fatal Error: code = 3

我将接收器临时托管在 Dropbox 公用文件夹上。关于我做错了什么有什么想法吗?

最佳答案

托管媒体的服务器未发送所需的 CORS header 。您需要添加这些,请参阅此 document ,使用跨域资源共享 (CORS) 部分。

关于javascript - Chromecast DRM 示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25797568/

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