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事件相关推荐

  1. JavaScrpit 犀牛书第七版笔记

    JavaScrpit 犀牛书第七版笔记 挖个坑吧,JavaScript 犀牛书英文的第七版(JavaScript: The Definitive Guide, 7th Edition)其实在去年(20 ...

  2. 只要5分钟用数据可视化带你看遍11月份新闻热点事件

    2017年11月份已经离我们而去,在过去的11月份我们也许经历了双十一的剁手,也可能亲眼看见了别人剁手.11月份的北京大兴区发生了"11·18"重大火灾,国内多家幼儿园也多次上了头 ...

  3. EventBus的粘性事件原理

    EventBus也称事件总线,根据发送事件的类型分为普通事件和粘性事件. 粘性事件的用法: 1.订阅的时候加上sticky = true @Subscribe(threadMode = ThreadM ...

  4. 点击事件如何传递到Activity中

    1.首先,当我们触摸屏幕时,通过Android消息机制,从Looper从MessageQueue中取出该事件,发送给WindowInputEventReceiver. 2.WindowInputEve ...

  5. 介绍一下android的事件分发机制

    分发事件是指点击事件: 按下.滑动.抬起.取消(滑动超出控件边界时) 分发事件的组件: 也称为分发事件者,包括Activity.ViewGroup和View 事件分发的入口: Activity.dis ...

  6. ViewGroup的Touch事件分发(源码分析)

    Android中Touch事件的分发又分为View和ViewGroup的事件分发,View的touch事件分发相对比较简单,可参考 View的Touch事件分发(一.初步了解) View的Touch事 ...

  7. View的Touch事件分发(二.源码分析)

    Android中Touch事件的分发又分为View和ViewGroup的事件分发,先来看简单的View的touch事件分发. 主要分析View的dispatchTouchEvent()方法和onTou ...

  8. View的Touch事件分发(一.初步了解)

    Android中Touch事件的分发又分为View和ViewGroup的事件分发,先来看简单的View的touch事件分发. 一次完整的Touch事件序列为: ACTION_DOWN -> AC ...

  9. 2021年大数据Spark(五十二):Structured Streaming 事件时间窗口分析

    目录 事件时间窗口分析 时间概念 ​​​​​​​event-time ​​​​​​​延迟数据处理 ​​​​​​​延迟数据 ​​​​​​​Watermarking 水位 ​​​​​​​官方案例演示 事件 ...

最新文章

  1. 【Linux】18_日志管理rsyslog系统日志管理
  2. 使用linux_使用 AppImage 进行 Linux 软件包管理 | Linux 中国
  3. 自学java 第十章内部类(一)
  4. asp.net UpdatePanel 不能局部刷新问题汇总
  5. python代码覆盖率工具_Python代码覆盖率分析工具Coverage
  6. python向下_如何在python中向下转换
  7. android系统功耗问题:systrace
  8. 黑苹果驱动_兼容黑苹果macOS Catalina系统的USB无线网卡型号及驱动下载地址
  9. 创业文档: 软件定制开发合同
  10. Zabbix 2.2 安装图解教程
  11. 笑话,随便笑不收费.
  12. Excel高级图表制作②——帕累托图
  13. ecshop模板支持php,ecshop模板不支持引入PHP语句的解决方法
  14. Excel查找一列中的相同值,删除该行或替换为空值
  15. 【MongoDB】继续在简单操作的边缘试探D2
  16. 2019测试工程师面试题
  17. docker ss-pannel_docker+traefik配置mysql + panel
  18. 汉诺塔(hanoi)、双色汉诺塔(分离型)、三色汉诺塔
  19. W ndows7蓝屏0x00000024,Win7蓝屏代码0x00000024修复方法
  20. JDK自带的反编译工具 javap

热门文章

  1. crontab定时巡检使用
  2. 云数据中心的网络架构
  3. 自定义Android时钟(支持秒针)
  4. 我来分析委托的协变与逆变
  5. win2000输入密码后循环登陆,不能进入用户桌面
  6. 树莓派应用实例2:环境温湿度测量
  7. Button.setOnClickListener(OnClickListener l) 原理
  8. 小测试来检验一下你原型链理解的怎么样。
  9. 超神线段树 山海经
  10. 修改github用户名