博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iPad播放网页视频(h5 video)失败的处理方法(Django网站)
阅读量:2431 次
发布时间:2019-05-10

本文共 1479 字,大约阅读时间需要 4 分钟。

在Android/Windows平台下,静态资源+h5可以毫无压力的播放视频,例如下面的代码

但是到了iPhone/iPad下,使用单纯的js+html等静态页面,是行不通的,需要增加一些头部信息。无奈执行,搭建了个Django环境处理,写法如下:

def video_player( request ):    req_video_name = request.GET["name"]    return render(request,"video_player.html", {
'media': req_video_name})def video_download( request ): const_size = 1000000 req_video = request.GET["name"] try: path = os.path.abspath(os.path.dirname(__file__)).replace('\\', '/') video_path = path + "/static/class/" + req_video with open(video_path,"rb") as f: HTTP_RANGE = request.META['HTTP_RANGE'].split('-') op = int(HTTP_RANGE[0][6:]) size = os.path.getsize(video_path) if HTTP_RANGE[1]=='': ed = min(size-1, op+const_size-1) else: ed = min(int(HTTP_RANGE[1]), op+const_size-1) s = f.read()[op:ed+1] response = HttpResponse(s, content_type='video/mp4') response.status_code = 206 response['Accept-Ranges'] = 'bytes' response['Content-Length'] = ed-op+1 response['Content-Range'] = 'bytes %s-%s/%s' % (op, ed, size) return response except Exception as e: logger.info(str(e))

video_player.html

{%load static%}    
odeYe

最关键的还算video_download方法,http请求需要得到视频的大小以及播放过程中,每块的大小。为啥ios需要这么弄,我也不知道…感觉让开发者去处理,很烦啊,为啥平台自己不去干这些活呢?

ios上播放效果如下

在这里插入图片描述
ps:朋友给的mp4,自己处理了一下,给孩子弄个资源网站,供学习娱乐使用。对资源感兴趣的可以私聊…

转载地址:http://hmvmb.baihongyu.com/

你可能感兴趣的文章
多线程——背景了解
查看>>
多线程——线程通讯
查看>>
简单说_spring
查看>>
我发现的BUG Bug 12412766
查看>>
装nagios报You don't have permission to access /nagios/ on this server. 错误
查看>>
10G rac crsd.log :th_select_handler: Failed to retrieve procctx from ht
查看>>
Oracle11g,没有统计信息时,表的Card从哪来?
查看>>
使用Dead Connection Detection(DCD)避免Oracle会话被防火墙强制断开
查看>>
ORACLE GOLDENGATE抽取进程在AIX裸设备环境中无响应
查看>>
成功恢复无备份RAC环境数据库
查看>>
MOS上一片关于ASM Rebalance很好的文章
查看>>
spring学习
查看>>
一个经典的查询及其SQL语句
查看>>
解析企业部署SOA四步骤
查看>>
Spring 高级特性------数据持久层
查看>>
AJAX 核心三部曲
查看>>
hibernate学习
查看>>
数据库备份与恢复----第一课
查看>>
objectserializable
查看>>
Oracle中的大字段
查看>>