开发者社区
社区提问意见反馈
开发者钉组织
扫描二维码
加入支付宝开发者钉组织
开发 > api > 基础 api > 多媒体 > 音频 > 背景音频 > backgroundaudiomanager > backgroundaudiomanager 概览
评论
收藏
订阅更新
我的文档
设置

backgroundaudiomanager 概览

基础库  或更高版本; 且 支付宝客户端 10.1.32 或更高版本; 若版本较低,建议采取 兼容处理

小程序开发者工具: 不支持。请以真机的调试结果为准。

主体: 企业支付宝小程序个人支付宝小程序

全局唯一的背景(后台)音频管理器。

可通过 my.getbackgroundaudiomanager 获取。

属性

名称 类型 只读 功能说明
duration number

当前音频的长度,单位为秒(s)。

paused boolean

当前是否是暂停或停止状态,true 表示暂停或停止,false 表示正在播放。

currenttime number

当前音频的播放位置,单位为秒(s)。

buffered number

音频缓冲的时间点,仅保证当前播放时间点到此时间点内容已缓冲。

src string

音频的数据源,默认为空字符串,当设置了新的 src 时,会自动开始播放。
注意

  • 音频的数据源为音频码,并且只支持来源于优酷的音频码。参考 获取优酷码指南 生成音频码。
  • 如果开发者不传入音频码,控制台不会报错,但无音频播放。
starttime number

音频开始播放的位置,默认从 0 开始播放,单位为秒(s)。

playbackrate number

播放速度。范围 0.5 - 2.0,默认为 1。
注意:android 需要 6 及以上版本支持。

title string

音频标题。

singer string

歌手名。

epname string

专辑名。

coverimgurl string

封面图 url,用于做原生音频播放器背景图。

weburl string

页面链接。

方法

名称 类型 功能说明
backgroundaudiomanager.play function

播放背景音频。

backgroundaudiomanager.pause function

暂停播放背景音频。

backgroundaudiomanager.stop function

停止播放背景音频。

backgroundaudiomanager.seek function

跳转到指定位置,单位为秒(s)。精确到小数点后 3 位,即支持毫秒(ms)级别精确度。

backgroundaudiomanager.onwaiting function

监听背景音频进入等待状态(开始缓冲)事件。

backgroundaudiomanager.offwaiting function

取消监听音频进入等待状态(开始缓冲)事件。

backgroundaudiomanager.oncanplay function

监听背景音频进入可以播放状态事件。但不保证后面可以流畅播放。

backgroundaudiomanager.offcanplay function

取消监听背景音频进入可以播放状态。

backgroundaudiomanager.onplay function

监听背景音频播放事件。

backgroundaudiomanager.offplay function

取消监听背景音频播放事件。

backgroundaudiomanager.onpause function

监听背景音频暂停事件。

backgroundaudiomanager.offpause function

取消监听背景音频暂停事件。

backgroundaudiomanager.onstop function

监听背景音频停止事件。

backgroundaudiomanager.offstop function

取消监听背景音频停止事件。

backgroundaudiomanager.onseeking function

监听背景音频开始播放进度跳转事件。

backgroundaudiomanager.offseeking function

取消监听背景音频开始播放进度跳转事件。

backgroundaudiomanager.onseeked function

监听背景音频完成播放进度跳转操作。

backgroundaudiomanager.offseeked function

取消监听背景音频完成播放进度跳转操作。

backgroundaudiomanager.onended function

监听背景音频自然播放结束事件。

backgroundaudiomanager.offended function

取消监听背景音频自然播放结束事件。

backgroundaudiomanager.onerror function

监听背景音频播放错误事件。

backgroundaudiomanager.offerror function

取消监听背景音频播放错误事件。

backgroundaudiomanager.ontimeupdate function

监听背景音频播放进度更新事件。

backgroundaudiomanager.offtimeupdate function

取消监听背景音频播放进度更新事件。

backgroundaudiomanager.onnext function

监听用户在系统音乐播放面板点击下一曲事件。

backgroundaudiomanager.offnext function

取消监听用户在系统音乐播放面板点击下一曲事件。

backgroundaudiomanager.onprev function

监听用户在系统音乐播放面板点击上一曲事件。

backgroundaudiomanager.offprev function

取消监听用户在系统音乐播放面板点击上一曲事件。

播放背景音频完整代码示例
规避第二次进入页面监听事件失效问题示例代码
.axml
.js
<view>
  <view>
    <button type="primary" ontap="playbackaudio">开始播放背景音频button>
  view>
  <view>
    <button type="primary" ontap="pausebackaudio">暂停播放背景音频button>
  view>
  <view>
    <button type="primary" ontap="stopbackaudio">停止播放背景音频button>
  view>
  <view>
    <button type="primary" ontap="seekbackaudio">背景音频播放进度跳转button>
  view>
view>
page ({
  onload () {
    //获取背景音管理对象。
    this.backgroundaudiomanager = my.getbackgroundaudiomanager ();
    //来源于优酷的音频码,默认为空字符串,当设置了新的 src 时,会自动开始播放。目前支持的格式有 m4a, aac, mp3, wav。如果开发者不传入音频码,控制台不会报错,但无音频播放。
    this.backgroundaudiomanager.src = 'xndy2nte2mje4na==';
    //封面图 url。用于做原生音频播放器背景图。原生音频播放器中的分享功能,分享的卡片配图及背景也将使用该图。
    this.backgroundaudiomanager.coverimgurl =
      'https://gw.alipayobjects.com/zos/rmsportal/oiquntyxvlljriiortum.jpg';
    //专辑名。原生音频播放器中的分享功能,分享出去的卡片简介,也将使用该值。
    this.backgroundaudiomanager.epname = 'epname';
    //音频标题。用于做原生音频播放器音频标题。原生音频播放器中的分享功能,分享的卡片标题,也将使用该值。
    this.backgroundaudiomanager.title = 'title';
    //歌手名。原生音频播放器中的分享功能,分享的卡片简介,也将使用该值。
    this.backgroundaudiomanager.singer = 'singer';
    // 注册监听事件
    this.backgroundaudiomanager.onplay (() => {
      console.log ('backgroundaudiomanager onplay 开始播放');
      my.alert ({content: 'backgroundaudiomanager 背景音频播放事件 onplay'});
    });
    this.backgroundaudiomanager.onpause (() => {
      console.log ('backgroundaudiomanager onpause 暂停播放');
      my.alert ({content: 'backgroundaudiomanager 背景音频暂停事件 onpause'});
    });
    this.backgroundaudiomanager.onstop (() => {
      console.log ('backgroundaudiomanager onstop 停止播放');
      my.alert ({content: 'backgroundaudiomanager 背景音频停止事件 onstop'});
    });
    this.backgroundaudiomanager.onseeking (() => {
      console.log ('backgroundaudiomanager onseeking 跳转播放事件');
      my.alert ({content: 'backgroundaudiomanager 背景音频跳转播放事件 onseeking'});
    });
    this.backgroundaudiomanager.onerror (res => {
      console.log ('backgroundaudiomanager 背景音频播放错误事件 onerror ', res);
      my.alert ({
        content: 'backgroundaudiomanager 背景音频播放错误事件 onerror' 
          json.stringify (res),
      });
    });
  },
  playbackaudio () {
    console.log ('backgroundaudiomanager.play 播放背景景音频');
    this.backgroundaudiomanager.play ();
  },
  stopbackaudio () {
    console.log ('backgroundaudiomanager.stop 停止播放背景音频');
    this.backgroundaudiomanager.stop ();
  },
  pausebackaudio () {
    console.log ('backgroundaudiomanager.pause 暂停播放背景音频');
    this.backgroundaudiomanager.pause ();
  },
  seekbackaudio () {
    console.log ('backgroundaudiomanager.seek 跳转到指定位置播放音频');
    // 举例跳到 20 s
    this.backgroundaudiomanager.seek (20);
  },
});
page ({
  onload () {
    //获取背景音管理对象。
    this.backgroundaudiomanager = my.getbackgroundaudiomanager ();
    //来源于优酷的音频码,默认为空字符串,当设置了新的 src 时,会自动开始播放。目前支持的格式有 m4a, aac, mp3, wav。如果开发者不传入音频码,控制台不会报错,但无音频播放。
    this.backgroundaudiomanager.src = 'xndy2nte2mje4na==';
    // 注册监听事件
    this.backgroundaudiomanager.onplay (() => {
      console.log ('backgroundaudiomanager onplay');
    });
    this.backgroundaudiomanager.onstop (() => {
      console.log ('backgroundaudiomanager onstop');
    });
    this.backgroundaudiomanager.ontimeupdate (() => {
      console.log ('backgroundaudiomanager ontimeupdate ');
    });
    this.backgroundaudiomanager.onerror (res => {
      console.log ('backgroundaudiomanager onerror ', res);
    });
  },
  onunload () {
    // 页面卸载时,卸载已监听的音频事件
    this.backgroundaudiomanager.offplay ();
    this.backgroundaudiomanager.offstop ();
    this.backgroundaudiomanager.onerror ();
    this.backgroundaudiomanager.offtimeupdate ();
  },
});
  • tip
    支付宝提供了简单的快速示例,可以点此下载 。
  • bug
    支付宝客户端版本 10.5.50 之前,退出创建 backgroundaudiomanager 的页面时,如果存在任一音频事件监听没有取消,在页面退出这些事件监听函数后不会再被触发,并且后续在新的页面创建的 backgroundaudiomanager 实例上所有事件监听也都会无效。规避办法:在页面卸载时将已注册的音频监听事件全部都 off 掉,参考 示例代码

q:如何实现循环播放?

a:

可以借助定时器或者 onended() 事件实现循环播放。

例如借助 onended 事件实现循环播放,onended事件会在背景音频自然播放结束时触发,可在 onended方法中再次调用 play 方法。

内容没有解决您的问题?您还可以前往 或 寻求帮助
凯发k8官方网娱乐官方 copyright © 2022 支付宝(杭州)信息技术有限公司  | icp证浙b2-20160559
该文档对你是否有帮助?
当前页面目录
网站地图