原生js——控制网页中的视频和音频

网页中的视频和音频是两个很相像的标签元素,使用js对他们的控制和处理也是非常得相似。
使用js控制这两个标签元素,几乎可以使用同样的函数和事件,但是为了清晰,下面还是给出了两者的详细方法
如此,也方便查阅学习。

一、使用js控制网页中的音频

1.在页面中引入<audio>标签

  • 如果对<audio>标签不熟悉的话,点击进行 W3school网站 进行学习。
<audio src="1.mp3" id="my-bgm" controls autoplay="autoplay" loop="loop"></audio>
  • 当我们使用Chrome测试以上代码的时候,发现虽然我们给 <audio> 标签添加了autoplay="autoplay"属性,但是音频还是不自动播放。这不是我们代码的问题,而是Chrome的问题。

  • 解决办法:在Chrome浏览器地址栏输入 chrome://flags/#autoplay-policy,然后将第一个选项 Autoplay policy 设置为 no user gesture is required 即可。

2.判断网页中的音频是否暂停

  • 使用如下代码,我们判断网页中的音频是否暂停。注意这里是使用paused,千万不要漏掉了 d
var bgm=document.getElementById('my-bgm');
// 如果音频是暂停,返回true
if(bgm.paused){
    console.log("音频现在是暂停状态");
}

3.使用js控制音频播放

  • 使用以下代码,控制网页中的音频播放。
var bgm=document.getElementById('my-bgm');
bgm.play();

4.使用js控制音频暂停

  • 使用以下代码,控制网页中的音频暂停。
var bgm=document.getElementById('my-bgm');
bgm.pause();

5.判断网页中的音频是否静音

var bgm=document.getElementById('my-bgm');
// 如果音频是静音,返回true
if(bgm.muted){
    console.log("音频现在是静音状态");
}

6.使用js控制音频的静音

var bgm = document.getElementById('my-bgm');
bgm.muted = true;       // 使音频静音
bgm.muted = false;      // 取消音频静音          

7.音频的 onended() 事件

  • 详细学习onended 事件,点击进入 菜鸟教程- onended 事件

  • 使用 onended() 事件,我们可以控制音频在播放完毕之后的动作。

  • 但是,如果<audio> 标签带有loop="loop"属性,这个事件是不能执行的。

var bgm = document.getElementById('my-bgm');
bgm.onended=function(){
    alert("音频播放完毕,可以继续后面的动作!");
}

// 或者这样子写
var bgm = document.getElementById('my-bgm');
bgm.addEventListener('ended',function(){
    alert("音频播放完毕,可以继续后面的动作!");
});

二、使用js控制网页中的视频

1.在页面中引入<video>标签

<video src="1.mp4" id="my-video" controls autoplay="autoplay"></video>
  • 如果对<video>标签不熟悉的话,点击进行 W3school网站 进行学习。

  • 当我们使用<video>标签正确引入视频,但是在网页上只能听到声音,不能看到画面,不是因为我们代码的错误,是因为视频的问题。是因为视频格式的问题,或者是因为我们的音频太短了,换一个视频试一试,但是如果是在移动端观看的时候,是没有这个问题的。

2.判断网页中视频是否暂停

 var my_video = document.getElementById("my-video");
 
 // 如果视频是暂停的,返回true
 // 如果视频是播放的,返回false
 console.log(my_video.paused);

3.使用js控制视频播放

var my_video = document.getElementById("my-video");
my_video.play();

4.使用js控制视频暂停

var my_video = document.getElementById("my-video");
my_video.pause();

5.判断网页中的视频是否静音

var my_video = document.getElementById("my-video");
// 如果视频是静音状态,返回true;否则返回true
console.log(my_video.muted);

6.使用js控制视频的静音

var my_video = document.getElementById("my-video");
my_video.muted = true;       // 使视频静音
my_video.muted = false;      // 取消视频静音

7.视频的 onended() 事件

  • 详细学习onended 事件,点击进入 菜鸟教程- onended 事件

  • 使用 onended() 事件,我们可以控制视频在播放完毕之后的动作。

  • 但是,如果<video> 标签带有loop="loop"属性,这个事件是不能执行的。

var my_video = document.getElementById("my-video");
my_video.onended=function(){
    alert("视频播放完毕,可以继续后面的动作!");
}

// 或者这样子写
var my_video = document.getElementById("my-video");
my_video.addEventListener('ended',function(){
    alert("视频播放完毕,可以继续后面的动作!");
});
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明先生_x阅读 15,967评论 3 119
  • 一 两年前的今天,我还处在考完研后的无所事事中,当时,我从一个工科专业跨考某专业排名top1的文学研究生。考完后,...
    钟楼怪人88阅读 337评论 0 0
  • 你的颜值,就是你生活的全部。我曾经一度以为这句话的错误,直到看到过这样一篇文章,体验过一下这样的生活,才发...
    淑女风华阅读 247评论 0 0
  • 最近上班,每天的状态就是感觉混吃等死,没有激情,也觉得日子过的很快,转眼间一个月已经过去了,并没有觉得自己有什么长...
    芒果不要布丁阅读 454评论 0 0
  • 在cocos creator中对按钮的事件绑定分为两种,一种是通过属性面板绑定。一种是用过代码绑定。今天我在这里主...
    z5老张头阅读 8,884评论 0 4