007_Buzz事件
1. 给音频添加一个或多个事件的监听函数。
sound.bind(event, callback)
group.bind(event, callback)
2. 给音频添加一个或多个事件的执行一次的监听函数。
sound.bindOnce(event, callback)
group.bindOnce(event, callback)
3. 解除绑定事件。
sound.unbind(event)
group.unbind(event)
4. 执行附加到事件的处理程序。请注意, 只触发函数, 而不触发本机事件。
sound.trigger(event)
group.trigger(event)
5. 事件列表
5.1. emptied事件: 媒体已经空了; 例如, 如果媒体已加载(也可以是部分加载)或者加载函数被调用, 则发送此事件。
5.2. timeupdate事件: 当前播放时间发生改变时调用。
5.3. volumechange事件: 音量发生改变时调用。例如: 设置音量或者静音属性改变。
5.4. loadstart事件: 开始加载音频文件时调用。
5.5. durationchange事件: 加载音频文件获取到播放时长或播放时长改变时调用。
5.6. loadedmetadata事件: 音频元数据加载完成时调用。
5.7. progress事件: 定期通知音频文件的下载进度。媒体文件已经下载的信息在缓存属性里。
5.8. suspend事件: 暂停加载媒体时发送; 这可能是因为下载已完成或由于任何其他原因暂停。
5.9. loadeddata事件: 媒体的第一帧已完成加载。
5.10. canplay事件: 当有足够的数据可以播放媒体时发送, 至少播放几帧。
5.11. canplaythrough事件: 表示可以不中断地播放整个媒体, 前提是下载速率至少保持在当前水平。
5.12. play事件: 播放媒体时调用。
5.13. playing事件: 媒体开始播放时调用。
5.14. pause事件: 当暂停播放时调用。
5.15. ended事件: 播放完成时调用。
5.16. ratechange事件: 播放速度发生改变时调用。
5.17. seeking事件: 寻址操作开始时调用(改变当前播放时间)。
5.18. waiting事件: 在另一个操作完成之前被延迟时调用(例如发生寻址操作会等待)。
5.19. seeked事件: 寻址操作完成时调用。
5.20. error事件: 当发生错误时调用。
5.21. sourceerror事件: 当源文件发生错误时调用。
5.22. dataunavailable事件: 当准备状态是数据不可用时调用。
5.23. empty事件: 当音频文件为空时调用。
6. 例子
<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title>Buzz事件</title><script type="text/javascript" src="buzz.js"></script></head><body><script type="text/javascript">var menu = new buzz.sound("sounds/menu.mp3");// menu.load();menu.bind("canplay", function () {console.log("canplay");for(let i = 0; i < arguments.length; i++){console.log(arguments[i]);}});menu.bind("canplaythrough", function () {console.log("canplaythrough");for(let i = 0; i < arguments.length; i++){console.log(arguments[i]);}});menu.bind("dataunavailable", function () {console.log("dataunavailable");for(let i = 0; i < arguments.length; i++){console.log(arguments[i]);}});menu.bind("durationchange", function () {console.log("durationchange: " + this.getDuration());for(let i = 0; i < arguments.length; i++){console.log(arguments[i]);}});menu.bind("emptied", function () {console.log("emptied");for(let i = 0; i < arguments.length; i++){console.log(arguments[i]);}});menu.bind("empty", function () {console.log("empty");for(let i = 0; i < arguments.length; i++){console.log(arguments[i]);}});menu.bind("ended", function () {console.log("ended");for(let i = 0; i < arguments.length; i++){console.log(arguments[i]);}});menu.bind("error", function () {console.log("error");for(let i = 0; i < arguments.length; i++){console.log(arguments[i]);}});menu.bind("sourceerror", function () {console.log("sourceerror");for(let i = 0; i < arguments.length; i++){console.log(arguments[i]);}});menu.bind("loadeddata", function () {console.log("loadeddata");for(let i = 0; i < arguments.length; i++){console.log(arguments[i]);}});menu.bind("loadedmetadata", function () {console.log("loadedmetadata");for(let i = 0; i < arguments.length; i++){console.log(arguments[i]);}});menu.bind("loadstart", function () {console.log("loadstart");for(let i = 0; i < arguments.length; i++){console.log(arguments[i]);}});menu.bind("pause", function () {console.log("pause");for(let i = 0; i < arguments.length; i++){console.log(arguments[i]);}});menu.bind("play", function () {console.log("play");for(let i = 0; i < arguments.length; i++){console.log(arguments[i]);}});menu.bind("playing", function () {console.log("playing");for(let i = 0; i < arguments.length; i++){console.log(arguments[i]);}});menu.bind("progress", function () {console.log("progress");for(let i = 0; i < arguments.length; i++){console.log(arguments[i]);}});menu.bind("ratechange", function () {console.log("ratechange");for(let i = 0; i < arguments.length; i++){console.log(arguments[i]);}});menu.bind("seeked", function () {console.log("seeked");for(let i = 0; i < arguments.length; i++){console.log(arguments[i]);}});menu.bind("seeking", function () {console.log("seeking");for(let i = 0; i < arguments.length; i++){console.log(arguments[i]);}});menu.bind("suspend", function () {console.log("suspend");for(let i = 0; i < arguments.length; i++){console.log(arguments[i]);}});menu.bind("timeupdate", function () {console.log("timeupdate: " + this.getTime());for(let i = 0; i < arguments.length; i++){console.log(arguments[i]);}});menu.bind("volumechange", function () {console.log("volumechange: " + this.getVolume());for(let i = 0; i < arguments.length; i++){console.log(arguments[i]);}});menu.bind("waiting", function () {console.log("waiting");for(let i = 0; i < arguments.length; i++){console.log(arguments[i]);}});function play(){menu.play();}function pause(){menu.pause();}function setVolume(){var volume = Math.floor(Math.random() * 100);menu.setVolume(volume);}function setSpeed(){menu.setSpeed(2);}function setPercent(){menu.setPercent(0);}function triggerWaitingEventFunction(){menu.trigger("waiting");}</script><button onclick="play()">播放</button><button onclick="pause()">暂停</button><button onclick="setVolume()">设置音量</button><button onclick="setSpeed()">设置播放速度</button><button onclick="setPercent()">以百分比设置播放时间位置</button><button onclick="triggerWaitingEventFunction()">触发执行等待事件的函数</button></body>
</html>
007_Buzz事件相关推荐
- JavaScrpit 犀牛书第七版笔记
JavaScrpit 犀牛书第七版笔记 挖个坑吧,JavaScript 犀牛书英文的第七版(JavaScript: The Definitive Guide, 7th Edition)其实在去年(20 ...
- 只要5分钟用数据可视化带你看遍11月份新闻热点事件
2017年11月份已经离我们而去,在过去的11月份我们也许经历了双十一的剁手,也可能亲眼看见了别人剁手.11月份的北京大兴区发生了"11·18"重大火灾,国内多家幼儿园也多次上了头 ...
- EventBus的粘性事件原理
EventBus也称事件总线,根据发送事件的类型分为普通事件和粘性事件. 粘性事件的用法: 1.订阅的时候加上sticky = true @Subscribe(threadMode = ThreadM ...
- 点击事件如何传递到Activity中
1.首先,当我们触摸屏幕时,通过Android消息机制,从Looper从MessageQueue中取出该事件,发送给WindowInputEventReceiver. 2.WindowInputEve ...
- 介绍一下android的事件分发机制
分发事件是指点击事件: 按下.滑动.抬起.取消(滑动超出控件边界时) 分发事件的组件: 也称为分发事件者,包括Activity.ViewGroup和View 事件分发的入口: Activity.dis ...
- ViewGroup的Touch事件分发(源码分析)
Android中Touch事件的分发又分为View和ViewGroup的事件分发,View的touch事件分发相对比较简单,可参考 View的Touch事件分发(一.初步了解) View的Touch事 ...
- View的Touch事件分发(二.源码分析)
Android中Touch事件的分发又分为View和ViewGroup的事件分发,先来看简单的View的touch事件分发. 主要分析View的dispatchTouchEvent()方法和onTou ...
- View的Touch事件分发(一.初步了解)
Android中Touch事件的分发又分为View和ViewGroup的事件分发,先来看简单的View的touch事件分发. 一次完整的Touch事件序列为: ACTION_DOWN -> AC ...
- 2021年大数据Spark(五十二):Structured Streaming 事件时间窗口分析
目录 事件时间窗口分析 时间概念 event-time 延迟数据处理 延迟数据 Watermarking 水位 官方案例演示 事件 ...
最新文章
- 【Linux】18_日志管理rsyslog系统日志管理
- 使用linux_使用 AppImage 进行 Linux 软件包管理 | Linux 中国
- 自学java 第十章内部类(一)
- asp.net UpdatePanel 不能局部刷新问题汇总
- python代码覆盖率工具_Python代码覆盖率分析工具Coverage
- python向下_如何在python中向下转换
- android系统功耗问题:systrace
- 黑苹果驱动_兼容黑苹果macOS Catalina系统的USB无线网卡型号及驱动下载地址
- 创业文档: 软件定制开发合同
- Zabbix 2.2 安装图解教程
- 笑话,随便笑不收费.
- Excel高级图表制作②——帕累托图
- ecshop模板支持php,ecshop模板不支持引入PHP语句的解决方法
- Excel查找一列中的相同值,删除该行或替换为空值
- 【MongoDB】继续在简单操作的边缘试探D2
- 2019测试工程师面试题
- docker ss-pannel_docker+traefik配置mysql + panel
- 汉诺塔(hanoi)、双色汉诺塔(分离型)、三色汉诺塔
- W ndows7蓝屏0x00000024,Win7蓝屏代码0x00000024修复方法
- JDK自带的反编译工具 javap