h5 页面在ios 手机上,有一些video播放不出来,和其他问题汇总

本文探讨了同一视频文件在不同设备(安卓与iOS)上播放的兼容性问题,分析了h264编码压缩级别对播放的影响,并分享了解决方案,包括使用第三方转码服务如阿里云,以及在iOS中实现视频内联播放的技术细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近遇到一个奇怪的问题:同一个video,格式都是mp4 ,在安卓机的 h5 页面上播放没有问题,但是在苹果手机就出现如下图:在这里插入图片描述
开始分析原因: 觉得是转码的原因。于是从视频编辑部 要了 原稿视频原件,自己去下载了一个 转码制作软件,在mac 电脑上转码成mp4 格式 ,然后在ios里面可以播放出来。但问题是为啥在视频编辑部那边制作的视频,有一些不能在ios 上正常播放,莫非是因为我们用的平台不一样,视频编辑部用的是 win 系统,转码软件跟我也不一样,所以导致视频制作的转码不一样。继续分析~~~ 终于发现是 :
h264编码的压缩级别问题导致。苹果官方文档中对 ios 能支持的压缩级别进行了描述:

https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/StreamingMediaGuide/FrequentlyAskedQuestions/FrequentlyAskedQuestions.html 。

解决方法:因为我的视频是上传到阿里云那边去的,所以后来采用了 阿里云的视频转码服务,也就是 调用了 他们的接口,获取到阿里云转码返回来的视频 url 地址,用这个地址在ios和安卓机上播放就没有问题了。 自己用转码软件 制作mp4 格式的视频 ,还是存在兼容性问题,所以最好还是采取第三方转码

video 标签在安卓机上面,没有办法实现在不脱离文档流的情况下浮层显示。
在安卓机上,一个页面有多个video,当主图的video 有poster 的时候,播放另外的一个视频,暂停之后,在点击播放主图的video的时候 会出现灰色的一块区域,这个时候需要单独设置当主图的video暂停情况下,多做一个遮罩层即可实现 一个页面多个video 标签来回播放 不会出现灰色区域。

在ios 内嵌的h5页面上,video标签则支持的好很多,如果是设置了 webkit-playsinline=“true” 那么要想真的让这个属性生效,不脱离文档流播放,那么就需要让ios 的开发人员帮忙加一下
allowsInlineMediaPlayback = YES webview.allowsInlineMediaPlayback = YES 这两个属性即可。

最后,可以微信扫码加群一起交流哦
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值