【问题标题】:Why my mp4 video does not play on mobile?为什么我的 mp4 视频无法在手机上播放?
【发布时间】:2020-05-01 02:30:29
【问题描述】:

我正在尝试使 mp4 视频自动播放在我的移动网站上运行。我在我的两个网站上都应用了相同的技术,但它不仅仅适用于其中一个,这很奇怪!我觉得我的想法快用完了!

这是第一个不起作用的网站:https://wearepharos.com/ pw:pharos123 它托管在 Shopify 上。

这是另一个网站,我在其中做同样的事情,但不知何故它可以在移动设备上运行: https://sebastianwalach.com/

我正在使用此脚本将 playinline 添加到在第二个网站上完成这项工作的视频中:

<script> 
    setTimeout(
        function(){ 
            var mobilevideo = document.getElementsByTagName("video"); 
            var i; 
            for (i = 0; i < mobilevideo.length; i++) { 
                mobilevideo[i].setAttribute("playsinline", "");
            } 
        }, 
    3000);
</script>

请帮帮我!

【问题讨论】:

  • 移动设备通常会阻止自动播放视频,尤其是在网站上没有用户交互的情况下。您唯一能做的就是添加导致视频播放的用户交互。
  • @Kokodoko 你如何解释视频正在第二个网站上播放。我什至使用相同的 jquery 库来加载它。它被称为vide.js。我认为它不起作用必须有非常具体的原因。
  • 在我自己的测试中,一些网站自动被浏览器“列入白名单”。浏览器会记住用户曾经允许自动播放视频。但是您应该记住,对于第一次访问您的网站的新用户,自动播放视频可能会被阻止 - 至少这是我的经验。

标签: javascript video mp4


【解决方案1】:

一个原因可能是您的 mp4 视频使用了“高”h.264 配置文件。

H.264 具有不同的配置文件 (https://en.wikipedia.org/wiki/Advanced_Video_Coding#Profiles),并非所有设备都支持所有配置文件。

例如,Android 基线支持不包括“高”配置文件,尽管某些 Android 设备可能支持它:https://developer.android.com/guide/topics/media/media-formats

这是 ffprobe 为您的视频的 mp4 版本提供的输出:

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/Users/.../Downloads/VICIS_2_-_HIGHLIGHTS (1).mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: isommp42
    creation_time   : 2019-11-11T00:35:32.000000Z
    encoder         : Google
  Duration: 00:00:49.46, start: 0.000000, bitrate: 1955 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 1280x720 [SAR 1:1 DAR 16:9], 1824 kb/s, 24 fps, 24 tbr, 12288 tbn, 48 tbc (default)
    Metadata:
      creation_time   : 2019-11-11T00:35:32.000000Z
      handler_name    : ISO Media file produced by Google Inc. Created on: 11/10/2019.
    Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default)
    Metadata:
      creation_time   : 2019-11-11T00:35:32.000000Z
      handler_name    : ISO Media file produced by Google Inc. Created on: 11/10/2019.

【讨论】:

  • 我尝试将格式更改为 webm,但我得到了相同的结果。谢谢你的回答。我很感激。
  • 可以肯定的是,我在两个网站上都使用了相同的视频。问题仍然存在。看起来它一定是别的东西。
  • @SebastianWalach - 你能分享它工作的设备和不能工作的设备吗?
【解决方案2】:

我没有找到对该问题的正确解释,但我应用了一个“hack” jQuery 修复程序,它实际上工作得很好。我发布它是因为它可能对某人有用:

function playVid() { 
  $('video').get(0).play();
} 
          setTimeout(playVid, 3000);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-30
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 2014-07-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多