- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想找出不支持视频自动播放的平台(手机、平板电脑)。有没有可靠的方法来做到这一点?到目前为止,我唯一的其他选择似乎是一个完整的用户代理嗅探器。
相关:横向或纵向的 @media 查询对于嗅探手持设备是否可靠?我想如果设备返回“横向”或“纵向”,它可能是手持设备,因此不太可能支持自动播放?
感谢您加入此讨论!
最佳答案
landscape
或 portrait
查询只会真正告诉您浏览器窗口的纵横比,因此不可靠
理论上 handheld
媒体查询将对当前浏览器做出正确响应,并且在媒体查询中它似乎可以工作
<style>
@media handheld only { body { background: #00ff00};}
</style>
但是在测试 handheld
时代码中的属性我运气不太好(例如,handheld
总是返回 false,而 screen
总是返回 true)
if (window.matchMedia('handheld').matches) {
// do some code for a handheld device
}
所以...是时候执行 B 计划了
我认为对此进行可靠测试的唯一方法是尝试自动播放,同时触发计时器……如果计时器触发时视频没有开始播放,则假设它不能。这不是一个优雅的解决方案(并且需要一些捏造才能使计时器正确计算视频/缓冲等的大小)并且您可能想要对结果进行 cookie,这样您就不必浪费开始时间-后续访问的正常运行时间。
在此示例中,我使用了 .5 秒的延迟,并对照 progress
进行检查<video>
上的事件标签...取决于您的场景和您可能想要试验的视频大小等。在 iPad、Nexus7、Nexus4 和 Kindle HDX 上测试过,似乎相当可靠
<video id="videoPlayer" autoplay controls>
<source src="Video.mp4" type="video/mp4">
</video>
<script>
var playing = false
var waitAndSee = 500; // this allows 0.5s for the video to show progress
var video = document.getElementById('videoPlayer');
video.addEventListener('progress',function(e){
playing = true
});
var counter=setTimeout ( "didItStart()", waitAndSee );
function didItStart() {
clearTimeout(counter);
if (playing) {
document.write("it started")
} else {
document.write("it didn't")
}
}
</script>
关于javascript - 平板电脑/手机的视频自动播放嗅探器 - "canPlayType"不适用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19865111/
所以,我最近看到了对 canPlayType 的引用在推特上。基本上总结是: The canPlayType() method checks if the browser can play the s
我使用 canPlayType() 来确定浏览器是否可以播放特定的视频格式,然后再将其加载到视频标签中,但是当我测试它时,它对所有视频格式返回“也许”。我的代码如下。我错过了什么吗? canItPla
我想找出不支持视频自动播放的平台(手机、平板电脑)。有没有可靠的方法来做到这一点?到目前为止,我唯一的其他选择似乎是一个完整的用户代理嗅探器。 相关:横向或纵向的 @media 查询对于嗅探手持设备是
我有一些问题问题是我在代码中使用了 audio.canPlayType这是我的代码: var audio = document.createElement( 'audio' ); if
我尝试了在developer.apple.com上编写的以下代码,但它抛出错误: TypeError: 'undefined' is not a function (evaluating 'myVid
我正在创建一个视频嗅探框架,我必须在其中嗅探不同浏览器的 HTML5 视频播放功能。为此,我使用了 canPlayType()给我三种可能结果的方法: 空字符串(无法运行视频时) “也许” “可能”
Windows 10 上的 Safari(5.1.7 版)不支持 support html 视频和音频,但在 Windows 7 上使用相同的版本效果很好,所以在这种情况下你必须使用 flash 来播
Microsoft Edge 85 具有 AV1 视频编解码器支持的误报指示。 像这样检查会返回“可能”,这通常表明视频编解码器可以安全使用。 videoElement.canPlayType('vi
我有通过 HLS 传送的视频。现在我想用 JavaScript 测试设备是否真的可以播放 HTML5 中的 HLS 视频。 通常在 Javascript 中我会做类似的事情 document.crea
我正在阅读一本 JavaScript/HTML5 书籍,遇到了一个我不理解的表达式。该代码使用 JavaScript 的 .canPlayType() 函数来检查浏览器是否支持给定的 HTML5 音频
我想为我乐队的网站创建一个 html5 音频播放器。 音频文件以 mp3、ogg 和 wav 文件的形式存储在数据库中,以支持所有主流浏览器的当前版本。 首先,一个音频文件的所有音频文件版本都加载到
我是一名优秀的程序员,十分优秀!