音频

qh.createInnerAudioContext

解释: 创建并返回内部 audio 上下文 innerAudioContext 对象。

方法参数: 无

返回值:innerAudioContext

innerAudioContext

innerAudioContext对象的属性列表

方法参数只读说明
srcString音频的数据链接,用于直接播放。
startTimeNumber开始播放的位置(单位:s),默认 0 。
loopBoolean是否循环播放,默认 false。
volumeNumber音量,范围 0~1。
durationNumber当前音频的长度(单位:s),只有在当前有合法的 src 时返回 。
currentTimeNumber当前音频的播放位置(单位:s),只有在当前有合法的 src 时返回,时间不取整,保留小数点后 6 位 。
pausedBoolean当前状态:true 表示暂停或停止,false 表示正在播放。
bufferedNumber音频缓冲的时间点,仅保证当前播放时间点到此时间点内容已缓冲。

innerAudioContext

innerAudioContext对象的方法列表

事件名说明参数
play播放
pause暂停。暂停后的音频再播放会从暂停处开始播放
stop停止。停止后的音频再播放会从头开始播放。
seek跳转到指定位置number position
destroy销毁当前实例
onCanplay监听音频进入可以播放状态的事件。但不保证后面可以流畅播放function callback
offCanplay取消监听音频进入可以播放状态的事件function callback
onPlay监听音频播放事件function callback
offPlay取消监听音频播放事件function callback
onPause监听音频暂停事件function callback
offPause取消监听音频暂停事件function callback
onEnded监听音频自然播放至结束的事件function callback
offEnded取消监听音频自然播放至结束的事件function callback
onTimeUpdate监听音频播放进度更新事件function callback
offTimeUpdate取消监听音频播放进度更新事件function callback
onError监听音频播放错误事件function callback
offError取消监听音频播放错误事件function callback
onWaiting监听音频加载中事件。当音频因为数据不足,需要停下来加载时会触发function callback
offWaiting取消监听音频加载中事件function callback
onSeeking监听音频进行跳转操作的事件function callback
offSeeking取消监听音频进行跳转操作的事件function callback
onSeeked监听音频完成跳转操作的事件function callback
offSeeked取消监听音频完成跳转操作的事件function callback

示例

  • 在 html 文件中
  1. <div >
  2. <se-button type="primary" @click="play">play</se-button>
  3. <se-button type="primary" @click="pause">pause</se-button>
  4. <se-button type="primary" @click="stop">stop</se-button>
  5. <se-button type="primary" @click="seek">seek</se-button>
  6. <se-button type="primary" @click="destroy">destroy</se-button>
  7. <se-button type="primary" @click="offTimeUpdate">offTimeUpdate</se-button>
  8. </div>
  • 在 js 文件中
  1. Page({
  2. mounted() {
  3. const innerAudioContext = qh.createInnerAudioContext();
  4. innerAudioContext.src = 'http://s3.qhres.com/static/1d7774ba4a6a3041.mp3';
  5. innerAudioContext.autoplay = false;
  6. innerAudioContext.onPlay(res => {
  7. qh.showToast({
  8. title: 'play',
  9. icon: 'none'
  10. });
  11. console.log('onPlay', res);
  12. });
  13. innerAudioContext.onPause(res => {
  14. qh.showToast({
  15. title: 'pause',
  16. icon: 'none'
  17. });
  18. console.log('onPause', res);
  19. });
  20. innerAudioContext.onEnded(res => {
  21. qh.showToast({
  22. title: 'end',
  23. icon: 'none'
  24. });
  25. console.log('onEnded', res);
  26. });
  27. innerAudioContext.onTimeUpdate(res => {
  28. console.log('onTimeUpdate', res);
  29. });
  30. innerAudioContext.onError(res => {
  31. qh.showToast({
  32. title: 'error',
  33. icon: 'none'
  34. });
  35. console.log('onError', res);
  36. });
  37. innerAudioContext.onWaiting(res => {
  38. qh.showToast({
  39. title: 'waiting',
  40. icon: 'none'
  41. });
  42. console.log('onWaiting', res);
  43. });
  44. this.innerAudioContext = innerAudioContext;
  45. },
  46. methods: {
  47. play() {
  48. this.innerAudioContext.play();
  49. },
  50. pause() {
  51. this.innerAudioContext.pause();
  52. },
  53. stop() {
  54. this.innerAudioContext.stop();
  55. },
  56. seek() {
  57. this.innerAudioContext.seek(10);
  58. },
  59. destroy() {
  60. this.innerAudioContext.destroy();
  61. },
  62. offTimeUpdate() {
  63. this.innerAudioContext.offTimeUpdate(res => {
  64. qh.showToast({
  65. title: 'offTimeUpdate',
  66. icon: 'none'
  67. });
  68. console.log('offTimeUpdate', res);
  69. });
  70. }
  71. }
  72. });