html - MP4 视频不能在 iPhone 上播放,但可以在桌面和 Android 上播放
问题描述
有没有人遇到过这个问题?
从 Windows PC 上的浏览器或从 Android 手机上传到 ASP.NET MVC5 网站的视频在任何浏览器、Android 甚至 Windows Mobile 上都可以正常播放,但在 iPhone 上不可见。
图库代码如下所示:
<div id="link_@fileViewModel.ID" class="row gallery-media-file">
<a href="@Url.Action("GetVideoFile", "File", new {id = fileViewModel.ID})" type="video/mp4" title="@videoViewModel.Title" class="m-0">
<video class="img-responsive">
<source src="@Url.Action("GetVideoFile", "File", new {id = fileViewModel.ID})" type="video/mp4" />
</video>
</a>
服务器是 IIS8 并安装了应用程序请求路由缓存以处理字节范围段大小。
视频存储在后端数据库中,并通过以下操作提供服务:
public void GetVideoFile(Guid id)
{
var file = _fileProcessor.Get(id);
Response.ContentType = file.MimeType;
Response.BinaryWrite(file.Data);
}
有什么想法...我很难过?
编辑:
使用 Dropzone.js -> https://www.dropzonejs.com/上传文件
编辑2:
我还使用 blueimp 库来显示文件,但结果是删除了该属性:
type="video/mp4"
从锚标签允许视频在 iPhone 上播放。
不幸的是,它没有显示视频的静止画面,而且播放时也没有声音。此外,当 type 属性从锚标记中删除时,它会停止在桌面和 android 上的图库中播放。
最终,我可能不得不根据客户端有条件地渲染 html,但体积和视频图像捕获仍然是一个问题。
以下是一些帮助,但仍然没有乐趣:HTML5 Video tag not working in Safari , iPhone and iPad
解决方案
推荐阅读
- django - GET 方法适用于本地主机,但在服务器(Django)上返回 500 Internal Server Error
- angular - Azure oAuth 从 Angular 获取请求中获取 HTML 正文而不是代码
- dialogflow-es - Dialogflow CX Page Fulfillment Response Text Parameter Is List(ES用户可能也知道答案)
- javascript - ipcRenderer 代替远程
- sed - sed 错误无效使用行地址 0
- r - 将函数的输出多次传递回输入
- javascript - 获取用户的地理位置,应用程序显示 lat 和 lng 但无法获取用户城市名称的反向地理编码
- ios - 如何在应用启动时调试与主机的随机 DYGLInitPlatform 连接失败错误?
- linux - 如何在 Linux 的同一进程中加载两个版本的库?
- mongodb - 尝试写入 Mongo 副本集时导致超时的原因是什么?