多媒体编程

多媒体和图形编程
这个属于在客户端生成图片,可以减少服务器的压力

脚本化图片

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

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

html如下

<!doctype html>
<html>
<head>
    <title>这是一个模拟图片翻转的dome</title>
</head>
<body>
    <img src="images/help.gif">
</body>
</html>

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对象实例
文档 https://developer.mozilla.org...
即创建一个对象用来暂时储存图片。

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

// 等价于
let img = "<img width=100 height=200 src=./picture.jpg>"
document.body.appendChild(img);

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

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

脚本化音频和视频

h5中引用了两个变迁audio和video两个标签
https://developer.mozilla.org...
https://developer.mozilla.org...
即使用上方两个标签,可以实现简单的视频和音频的插入

<audio src="background_music.mp3"/>
<video src="news.mov" width=320 height=240/>

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

由于标准的执行问题,所以使用source标签实现兼容
文档 https://developer.mozilla.org...
下方是一个兼容的实现

<video id="news" width=640 height=480 controls preload>
    <!-- Firefor chrome 支持的web格式 -->
    <source src="news.mp4" type="video/webm">
    <!-- IE和Safair支持的h。264格式 -->
    <source src="news.mp4" type="video/mp4">
    <!-- flash插件用做后备方案 -->
    <object width=640 height=480 type="application/x-hockwave-flash" data="flash_movie_player.swf">
        <!-- 这里的参数配置flash视频播放器 --->
        <!--  文本用做后备内容 --->
        <div>播放器不支持</div>
    </object>
</video>

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();   // 进行播放
}

文档 https://developer.mozilla.org...

控制播放

控制媒体播放使用的是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

VC++编程指南(中文版),不错的一本电子书。啥也不说了,直接看内容预览: 第一课 Windows编程和面向对象技术   1.1 Windows发展历史   1.2 Windows操作系统特点   1.3 Windows应用程序设计的特点   1.4 Windows应用程序的开发工具   1.5 面向对象和Windows编程 第二课 使用Visual C++ 5.0   2.1 Visual C++可视化集成开发环境   2.2 创建、组织文件、工程和工作区   2.3 WIN32开发   2.4 MFC编程   2.5 移植C Windows程序到MFC   2.6 Visual C++5.0新特性 第三课 窗口、菜单与消息框   3.1 编写第一个窗口程序   3.2 AppWizard所创建的文件   3.3 编译和链接Hello程序   3.4 应用程序执行机制   3.5几种窗口类型   3.6 使用菜单   3.7 更新命令用户接口(UI)消息   3.8 快捷菜单 第四课 工具条和状态栏   4.1 工具条的可视化设计   4.2 工具条的编程技术   4.3 状态栏的设计与实现 第五课 对话框   5.1对话框和控件的基本概念   5.2 对话框模板的设计   5.3 对话框类的设计   5.4 非模态对话框   5.5 标签式对话框   5.6 公用对话框   5.7 小结 第六课 控件 6.1 传统控件   6.2 新型Win32控件   6.3 控件的技术总结   6.4 在非对话框窗口中使用控件   6.5 如何设计新的控件   6.6 小结 第七课 文档视结构   7.1 文档/视图概念   7.2 文档视结构程序实例   7.3 让文档视结构程序支持卷滚   7.4 定制串行化   7.5 不使用串行化的文档视结构程序   7.6 小 结 第八课 多文档界面MDI   8.1多文档界面窗口   8.2图形设备接口(GDI)   8.3 绘图程序   8.4访问当前活动视图和活动文档   8.5分隔视图   8.6打印和打印预览   8.7支持多个文档类型的文档视结构程序   8.8防止应用程序运行时创建空白窗口   8.9小结 第九课 创建用户模块   9.1用户模块   9.2静态连接库   9.3创建动态库   9.4小结 第十课 数据库编程   10.1 数据库的基本概念   10.2 ODBC基本概念   10.3 MFC的ODBC类简介   10.4 CDatabase类   10.5 CRecordset类   10.6 CRecordView类   10.7 编写Enroll数据库应用例程   10.8 DAO和DAO类   10.9 自动注册DSN和创建表   10.10 小结 第十一课 多媒体编程   11.1 调色板   11.2位图   11.3依赖于设备的位图(DDB)   1.4与设备无关的位图(DIB)   11.5动画控件   11.6媒体控制接口(MCI).   11,7小结  第十二章 多线程与串行通信   12.1 多任务、进程和线程   12.2 线程的同步   12.3 串行通信与重叠I/O   12.4 一个通信演示程序   12.5 小结
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值