在 Windows Safari VLC 网络插件中停止流式传输
Streaming stops In Windows Safari VLC web plugin
我在 Windows Safari 中使用 vlc 插件的视频流时遇到问题。我在嵌入标签中添加了 windowless="true" 属性,以便我可以在 vlc 插件上方显示透明 DIV 以在视频上绘制。添加此标签后,视频停止并且未收到视频帧。但是当我点击视频或在视频上画东西时,视频帧刷新了一会儿。即使我删除 windowless="true" 属性视频也能正常工作。
在 windows safari 中观察到问题仅在 windowless="true".
我有完全相同的行为。 Windows10、Safari 5.1.7.
到目前为止,我找到的唯一解决方案是强制浏览器更新播放器框架的解决方法。我通过快速添加和删除 "glass" div 来做到这一点:一个占据整个浏览器屏幕并具有不透明背景填充颜色的区域。由于它是透明的,因此屏幕上没有任何可见的变化,但 Safari 总是会重新绘制重叠区域,即使它们被透明窗格重叠也是如此。这是我的工作:
function play() {
// ...create player, set properties, etc.
// assuming player taking whole browser's screen.
// It's a glass pane - it should cover whole player's output surface.
var glass = $('<div>');
$('body').append(glass);
// Here we start updating...
setInterval(function() {
$('body').toggleClass('glass');
}, 20); // <== 1000ms / 30fps = 33ms, put 20ms just in case.
}
.glass {
position: absolute;
width: 100%;
height: 100%;
z-index: 10000;
background-color: rgba(40,1,1,0);
}
当然,您需要调整 z-index
以便玻璃与播放器表面重叠但不会阻挡您的自定义控件。
是的,这是一个丑陋的 hack,但它可以作为一个短期解决方案。
我在 Windows Safari 中使用 vlc 插件的视频流时遇到问题。我在嵌入标签中添加了 windowless="true" 属性,以便我可以在 vlc 插件上方显示透明 DIV 以在视频上绘制。添加此标签后,视频停止并且未收到视频帧。但是当我点击视频或在视频上画东西时,视频帧刷新了一会儿。即使我删除 windowless="true" 属性视频也能正常工作。 在 windows safari 中观察到问题仅在 windowless="true".
我有完全相同的行为。 Windows10、Safari 5.1.7.
到目前为止,我找到的唯一解决方案是强制浏览器更新播放器框架的解决方法。我通过快速添加和删除 "glass" div 来做到这一点:一个占据整个浏览器屏幕并具有不透明背景填充颜色的区域。由于它是透明的,因此屏幕上没有任何可见的变化,但 Safari 总是会重新绘制重叠区域,即使它们被透明窗格重叠也是如此。这是我的工作:
function play() {
// ...create player, set properties, etc.
// assuming player taking whole browser's screen.
// It's a glass pane - it should cover whole player's output surface.
var glass = $('<div>');
$('body').append(glass);
// Here we start updating...
setInterval(function() {
$('body').toggleClass('glass');
}, 20); // <== 1000ms / 30fps = 33ms, put 20ms just in case.
}
.glass {
position: absolute;
width: 100%;
height: 100%;
z-index: 10000;
background-color: rgba(40,1,1,0);
}
当然,您需要调整 z-index
以便玻璃与播放器表面重叠但不会阻挡您的自定义控件。
是的,这是一个丑陋的 hack,但它可以作为一个短期解决方案。