当源是IE/EDGE上的加密令牌视频时,Canvas未从azure媒体播放器中提取图像
Canvas not drawImage from azure media player when source is encrypted token video on IE/EDGE
我的应用程序在Chrome中运行良好,但在IE/EDGE中,画布不会显示视频。
当我使用加密视频作为源代码时,这种情况就开始发生了,当我使用开源视频时,画布显示了视频。我找不到解决方案,主要是因为IE/EDGE不会在开发者工具控制台中显示错误。
IE/EDGE有一些政策不允许绘制加密视频?
将来我将从html中删除视频元素,只在javascript中创建,并在画布中写一些文本作为水印。
<canvas runat="server" id="canvas1"></canvas>
<video
id="video1"
runat="server"
class="azuremediaplayer amp-default-skin amp-big-play-centered"
controls
poster="">
</video>
<script>
var videoElement = document.getElementById('<%=video1.ClientID%>');
videoElement.setAttribute('webkit-playsinline', 'true');
videoElement.width = '1280';
videoElement.height = '720';
var x, y, min, tempo = 0;
var nroRender = 201;
var myPlayer = amp(videoElement);
myPlayer.src([{
src: '<URL VIDEO>',
protectionInfo: [
{
type: 'Widevine',
authenticationToken: 'Bearer=<TOKEN>'
}, {
type: 'PlayReady',
authenticationToken: 'Bearer=<TOKEN>'
}]
}]);
var canvasElement = document.getElementById('<%=canvas1.ClientID%>');
canvasElement.width = '1280';
canvasElement.height = '720';
var ctx = canvasElement.getContext('2d');
function desenha() {
ctx.clearRect(0, 0, canvasElement.width, canvasElement.height);
ctx.drawImage($('#video1 video')[0], 0, 0, canvasElement.width, canvasElement.height);
}
function loop() {
desenha();
setTimeout(loop, 1000 / 60);
}
loop();
</script>
如果你有一些问题来理解问题所在,请在Chrome中运行,然后在IE中运行。在Chrome中,画布看起来像视频,在IE中,画布显示为黑色。
完整代码https://github.com/tobiasrighi/video-canvas/blob/master/WebForm1.aspx
由于视频受DRM保护,通过设计IE/Edge阻止了捕获帧的能力-这实际上不是一个错误,这是在媒体管道中建立的。Chrome目前在Widevine上的实现似乎没有阻止帧,尽管这可能在不久的将来发生,这取决于谷歌未来的设计考虑。
相关文章:
- ng绑定和ng href问题.ng href未从控制器加载数据
- jQuery触发器点击未从AJAX成功工作
- 使用jquery.load('pageName')方法时,未从应用程序缓存加载Html页
- 数据未从ajax POST返回
- JSON解析未从数组中获取值
- 为什么谷歌地图API's方法未从RequireJS中正确调用
- 对象未从Ionic服务正确返回
- Angular2组件未从视图中呈现javascript
- PHP未从AJAX接收序列化数据
- 下拉列表未从计算的可观察项更新
- ExtJS网格未从Ext.data.XmlStore加载数据
- 未从Selenium网络驱动程序中的配置文件接收到正确的值
- 表单操作值未从attr()函数中获取
- HTML onchange未从Ajax插入中激发
- 作用域变量未从状态父控制器继承到子控制器
- 来自函数的返回对象在 jQuery 中未从 $.post 定义
- PhantomJS未从同一URL加载.js
- Jquery.对话框未从表中的图像输入打开
- json在Android中对URL进行编码后未从服务器接收到
- 当源是IE/EDGE上的加密令牌视频时,Canvas未从azure媒体播放器中提取图像