在HTML中插入音频和视频(详解)

Hi i,m JinXiang


⭐ 前言 ⭐

本篇文章主要介绍在HTML中插入音频和视频以及部分理论知识


🍉欢迎点赞 👍 收藏 ⭐留言评论 📝私信必回哟😁

🍉博主收将持续更新学习记录获,友友们有任何问题可以在评论区留言


目录

一、音频标签:audio

1、简介

2、使用

二、视频标签:video

1、简介

2、使用

三、使用音频(audio)和视频(video)需要注意事项:


一、音频标签:audio

1、简介

在HTML中,`<audio>`标签用于嵌入音频文件,使其可以在网页中播放。`<audio>`标签具有以下特点:

  •  `<audio>`标签可以嵌入多种音频格式,如MP3、OGG、WAV等。
  •  通过`src`属性指定音频文件的URL,通过`controls`属性指定是否显示播放器控件。
  •  可以使用`<source>`标签指定多个音频文件,浏览器会选择支持的格式进行播放。
  •  可以使用`<track>`标签添加音频描述、字幕等元数据。
  •  可以通过CSS样式控制音频的外观。
  •  支持事件,如播放、暂停、结束等。

总的来说,`<audio>`标签是在网页中嵌入音频文件的一种简单而方便的方式,可以帮助网页设计师更加灵活的设计网页。

2、使用

1. 创建`<audio>`标签,并设置`src`属性,指定音频文件的URL。

<audio src="music.mp3"></audio>

2. 添加`controls`属性,显示播放器控件。

<audio src="music.mp3" controls></audio>

3. 添加`<source>`标签指定多个音频文件,浏览器会选择支持的格式进行播放。

<audio controls>
  <source src="music.mp3" type="audio/mpeg">
  <source src="music.ogg" type="audio/ogg">
  <source src="music.wav" type="audio/wav">
</audio>

除了上述基本用法外,`<audio>`标签还支持多种其他属性和事件,如`autoplay`属性、`loop`属性、`ended`事件等等,根据需要进行设置即可。

二、视频标签:video

1、简介

HTML中`<video>`标签用于添加视频到网页中。通过`<video>`标签,我们可以在网页上播放本地或者在线的视频。

  • `<video>`标签可以添加多个属性和事件,其中一些常用的属性和事件如下:
  •  `src`: 视频文件的 URL 地址。
  •  `autoplay`: 自动播放音频。
  •  `controls`: 显示播放器控件。
  •  `loop`: 循环播放视频。
  •  `width` 和 `height`: 视频的宽度和高度。
  •  `poster`: 设定视频的封面。

在使用`<video>`标签时,可以嵌套`<source>`标签,这样可以添加多个视频文件,浏览器会自动选择支持的视频格式进行播放。

2、使用

1. 在`<video>`标签中设置视频文件的`src`属性,指定视频文件的URL地址。如果有多个格式的视频文件,在`<video>`标签中添加多个`<source>`标签,浏览器会自动选择支持的格式进行播放。

<video width="640" height="360" controls>
  <source src="video.mp4" type="video/mp4">
  <source src="video.webm" type="video/webm">
  <source src="video.ogg" type="video/ogg">
</video>

2. 可以使用`controls`属性来显示播放器控件,例如播放、暂停、音量、全屏等。

<video width="640" height="360" controls>
  <source src="video.mp4" type="video/mp4">
</video>

3. 还可以设置视频的尺寸、自动播放、循环等属性。

<video width="640" height="360" autoplay loop>
  <source src="video.mp4" type="video/mp4">
</video>

上面这段代码将视频设置为自动播放,并且设置为循环播放。

三、使用音频(audio)和视频(video)需要注意事项:

  • 1、浏览器支持的音频和视频格式不同,需要在`<source>`标签中提供不同格式的文件来兼容不同的浏览器。
  • 2、在设置`src`属性时,应该使用相对路径或绝对路径,避免使用相对于当前页面的路径。
  • 3、使用`controls`属性会显示默认的播放器控件,但是在移动设备上默认控件可能无法显示或不够友好。此时可以使用JavaScript自定义控件。
  • 4、在不同的浏览器和操作系统下,对于媒体的支持情况也可能不同,因此需要在不同的浏览器和设备上进行测试。
  • 5、如果使用自定义控件,需要注意控件的可用性和兼容性,避免在某些浏览器或设备上无法使用。
  • 6、浏览器默认情况下不会自动播放媒体文件,需要用户手动点击播放按钮。如果希望实现自动播放的效果,需要在设置`<audio>`或`<video>`标签时添加`autoplay`属性。
  • 7、使用媒体文件会占用网站的带宽,需要注意使用合适的压缩方法来减小文件大小,避免对网站性能造成负面影响。

总之,在使用<audio><video>标签时,需要进行充分的测试和优化,以提供良好的用户体验和兼容性。

总结不易,希望uu们不要吝啬亲爱的👍哟(^U^)ノ~YO!!如有问题,欢迎评论区批评指正😁

  • 39
    点赞
  • 105
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
链表是一种常见的数据结构,它由一些节点组成,每个节点包含一个数据项和指向下一个节点的指针。链表的数据项可以是任何类型的数据,例如整数、字符串等。链表插入元素和删除元素是链表操作常见的两种操作。 链表插入元素 链表插入元素操作可以分为两种情况: 1. 在链表头插入元素 在链表头插入元素是最简单的一种情况,因为只需要将新元素插入到链表头部即可。具体步骤如下: (1)创建一个新节点,将需要插入的元素赋值给新节点的数据项。 (2)将新节点的指针指向原链表的头节点。 (3)将新节点设置为链表的新头节点。 示例代码: ``` struct Node { int data; struct Node* next; }; void insertAtBeginning(struct Node** head_ref, int new_data) { /* 1. create new node */ struct Node* new_node = (struct Node*)malloc(sizeof(struct Node)); /* 2. put in the data */ new_node->data = new_data; /* 3. Make next of new node as head */ new_node->next = (*head_ref); /* 4. move the head to point to the new node */ (*head_ref) = new_node; } ``` 2. 在链表间或尾部插入元素 在链表间或尾部插入元素需要先找到要插入的位置,然后将新元素插入到该位置之后。具体步骤如下: (1)创建一个新节点,将需要插入的元素赋值给新节点的数据项。 (2)遍历链表,找到要插入的位置。 (3)将新节点的指针指向该位置的下一个节点。 (4)将该位置的节点的指针指向新节点。 示例代码: ``` void insertAfter(struct Node* prev_node, int new_data) { /*1. check if the given prev_node is NULL */ if (prev_node == NULL) { printf("the given previous node cannot be NULL"); return; } /* 2. create new node */ struct Node* new_node = (struct Node*)malloc(sizeof(struct Node)); /* 3. put in the data */ new_node->data = new_data; /* 4. Make next of new node as next of prev_node */ new_node->next = prev_node->next; /* 5. move the next of prev_node as new_node */ prev_node->next = new_node; } ``` 链表删除元素 链表删除元素操作也可以分为两种情况: 1. 删除链表头元素 删除链表头元素需要将链表的头指针指向下一个节点即可。具体步骤如下: (1)如果链表为空,则返回。 (2)将头节点指针指向下一个节点。 (3)释放原头节点的内存空间。 示例代码: ``` void deleteAtBeginning(struct Node** head_ref) { /* 1. check if the list is empty */ if (*head_ref == NULL) return; /* 2. Store head node */ struct Node* temp = *head_ref; /* 3. Change head to next node */ *head_ref = (*head_ref)->next; /* 4. free the old head node */ free(temp); } ``` 2. 删除链表间或尾部元素 删除链表间或尾部元素需要先找到要删除的节点,然后将该节点的前一个节点的指针指向该节点的下一个节点即可。具体步骤如下: (1)如果链表为空,则返回。 (2)遍历链表,找到要删除的节点。 (3)将该节点的前一个节点的指针指向该节点的下一个节点。 (4)释放该节点的内存空间。 示例代码: ``` void deleteNode(struct Node** head_ref, int key) { /* 1. check if the list is empty */ if (*head_ref == NULL) return; /* 2. store head node */ struct Node* temp = *head_ref, *prev; /* 3. if head node itself holds the key to be deleted */ if (temp != NULL && temp->data == key) { *head_ref = temp->next; /* change head */ free(temp); /* free old head */ return; } /* 4. search for the key to be deleted, keep track of the previous node as we need to change 'prev->next' */ while (temp != NULL && temp->data != key) { prev = temp; temp = temp->next; } /* 5. if key was not present in linked list */ if (temp == NULL) return; /* 6. unlink the node from linked list */ prev->next = temp->next; /* 7. free memory */ free(temp); } ``` 以上就是链表插入元素和删除元素的详细介绍和示例代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值