博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
多媒体编程
阅读量:6877 次
发布时间:2019-06-26

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

多媒体和图形编程

这个属于在客户端生成图片,可以减少服务器的压力

脚本化图片

web页面使用img元素,嵌入图片。

img元素可以通过控制src属性来操控img。
一个栗子,鼠标经过的时候,改变图片

当鼠标经过的时候,会触发两个事件,分别是onmouseover以及onmouseout两个

html如下

    这是一个模拟图片翻转的dome    

js如下

// 获取元素let img = document.getElementsByTagName("img")[0]// 绑定事件img.addEventListener(onmouseover, () => {   this.src="./images/help_rollover.gif"; })img.addEventListener(onmouseout, () => {    this.src="./images/help.gif";})img.addEventListener(onclick, () => {    this.src="./images/help_onlick.gif";})

由于要实现图片翻转,需要较高的响应度,此时需要进行缓存,new一个Image对象创建一个HTMLImageElement对象实例

文档
即创建一个对象用来暂时储存图片。

let myImage = new Image(10, 200);    // 设置缓存的图片大小myImage.src="./picture.jpg";    // 设置缓存的图片位置document.body.appendChild(myImage)    // 添加一个子节点// 等价于let img = ""document.body.appendChild(img);

使用的是Image()类,创建对象

其中图片的懒加载可以使用Image类,先缓存图片,等待用户滑到的时候,然后触发事件,将src进行替换。

脚本化音频和视频

h5中引用了两个变迁audio和video两个标签

即使用上方两个标签,可以实现简单的视频和音频的插入

使用上方的两个标签实现简单的视频和音频的插入

由于标准的执行问题,所以使用source标签实现兼容

文档
下方是一个兼容的实现

Audio构造函数

Audio()构造函数类似Image()函数

例如

new Audio("./chime.wav").play();    // 载入并播放声音效果

这是音频的api,视频没有这个api

类型选择和加载

使用的是canPlayType进行的

原型为 HTMLMediaElement.canPlayType()
能播放返回一个真值,不能播放返回一个假值

let a = new Audio();if (a.canPlayType("audio/wav")) {    a.src="./soundeffect.wav";    a.play();   // 进行播放}

文档

控制播放

控制媒体播放使用的是play()和pause()方法用来控制和暂停媒体的播放

// 文档载入完成后,开始播放背景音乐window.addEventListener("load", () => {    document.getElementById("music").play();}, false);

通过设置urrentTime属性进行定点播放,

volume表示播放音量
playbackRate表示播放的速度
如果元素拥有controls属性,会在播放器上显示控件,让用户进行控制播放。
controls表示在浏览器中是否显示控件true为显示,false为隐藏,

查询媒体状态

他们有一些只读的属性,描述当前的状态。

播放器暂停,pause属性值为true
播放器跳转到一个新的播放点,seeking的值为true
如果完全播放完成,ended为true
duration媒体时长
initialTime表示媒体的开始时间
等等还有很多,用的时候现查吧,过一遍,大致知道有这些属性即可

媒体相关事件

会有媒体的相关事件,必须使用addEventListener()方法注册在audio和video元素上,当被请求的时候触发,当被加载的时候触发等等。

下面是svg

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

你可能感兴趣的文章
QTP的那些事--对已经存在Excel文件修改后保存时,会弹出一个询问对话框
查看>>
UVA 11174 Stand in a Line 树dp+算
查看>>
C语言中函数strcpy ,strncpy ,strlcpy的用法【转】
查看>>
mysql join 的同时可以筛选数据
查看>>
Code First开发系列之管理并发和事务
查看>>
Spark SQL概念学习系列之为什么使用 Spark SQL?(二)
查看>>
VirtualBox-Linux系统安装增强功能
查看>>
ssh/ssh2登录
查看>>
mongodb对数组元素及内嵌文档进行增删改查操作(转)
查看>>
【python3.5】安装lxml中没有etree模块的问题解决方法
查看>>
pgpool-II的性能缺陷
查看>>
spin_lock浅析【转】
查看>>
MVC前台Post/Get异步获得数据时参数的取值问题
查看>>
8086/8088指令详解
查看>>
iOS:自定义代码块{ }
查看>>
C# 远程链接指定计算机,获取该计算机的计算机名等信息
查看>>
[Flume][Kafka]Flume 与 Kakfa结合例子(Kakfa 作为flume 的sink 输出到 Kafka topic)
查看>>
OpenGL入门笔记(十一)
查看>>
kill命令
查看>>
python3爬虫(二)实战- 爬糗事百科
查看>>