html5videofile手机,每天10个前端知识点:HTML5(video、FileReader)

以下内容若有问题烦请即时告知我予以修改,以免误导更多人。

H5视频 video

(1) 属性

(2) 方法

H5文件 FileReader

(1) 文件拖拽

(2) File接口

(3) 示例

9. H5视频 video

不同浏览器支持的格式不同,可能需要转码,在source标签里引入多种格式

FF不支持mp4,支持ogg

(1) 属性

src -> 视频路径

controls -> 显示自带控制进度条

loop -> 视频循环

autoplay -> 自动播放

muted -> 静音

currentTime -> 当前播放时间

duration -> 视频总时间

volume -> 音量 [0,1]

ontimeupdate -> 进度更新

play -> 是否在播放 返回true/false

pause -> 是否暂停 返回true/false

(2) 方法

play() -> 播放视频

pause() -> 暂停视频

load() -> 重新加载视频

onended() -> 视频播放完毕

常见结构



播放/暂停

var v1 = document.getElementById('v1');

function play() {

if(v1.paused) {

v1.play();

} else {

v1.pause();

}

}

10. H5文件 FileReader

(1) 文件拖拽

ondragover -> 只要悬浮,一直触发

ondragenter -> 进入时触发,有子节点时有问题

ondragleave -> 离开时触发,有子节点时有问题

ondrop -> 释放鼠标时触发,对应DOM节点的dragover事件必须取消默认事件

(2) File接口

var reader = new FileReader(); 新建文件读取对象

方法

.readAsText(file) -> 读取文本文件

.readAsDataURL(file) -> 读取多媒体

.onload -> 资源读取完毕 reader.result

.onprogress -> 读取进度更新时触发

reader.onprogress = function(ev){

oProgress.value = ev.loaded/ev.total*100;

}

.onloadstart -> 加载开始时触发

.onloadend -> 加载结束时触发

.onerror -> 出现错误时触发

.onabort -> 加载过程中中止时触发

.abort -> 手动中止加载

(3) 示例

文本

oBlock.ondrop = function(ev) {

var file = ev.dataTransfer.files[0];

var reader = new FileReader();

reader.readAsText(file); // 读取文本文件

reader.onload = function(ev) {

console.log(reader.result);

}

ev.preventDefault();

}

多媒体

oBlock.ondrop = function(ev) {

var file = ev.dataTransfer.files[0];

var reader = new FileReader();

reader.readAsDataURL(file); // 读取多媒体

reader.onload = function(ev) {

new Audio(reader.result).play();

}

ev.preventDefault();

}

处理文本/多媒体

oBlock.ondrop = function(ev) {

var file = ev.dataTransfer.files[0];

var reader = new FileReader();

if (/text/.test(file.type)) { // 处理文本

reader.readAsText(file);

reader.onload = function() {

document.write(reader.result);

}

console.log('text');

} else { // 处理多媒体

reader.readAsDataURL(file);

reader.onload = function() {

if (/image/.test(file.type)) {

console.log('image');

var oImage = new Image();

oImage.src = reader.result;

document.body.appendChild(oImage)

} else if (/video/.test(file.type)) {

console.log('video');

oVideo.src = reader.result;

oVideo.play();

} else {

console.log('audio');

new Audio(reader.result).play();

}

}

}

ev.preventDefault();

}

更多内容可以订阅本人微信公众号,一起开启前端小白进阶的世界!

公众号是坚持日更的,不发文的时候推送一些我觉得好用的前端网站或者看到的一些问题的解决方案,也更便于大家交流,就酱。

75c7fb12adf4

微信公众号:无媛无故

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值