InnerAudioContext

解释: swan.createInnerAudioContext 的返回值。

方法参数

方法参数必填说明
srcString音频的数据链接,用于直接播放,仅支持绝对路径。
startTimeNumber开始播放的位置(单位:s),默认 0 。
autoplayBoolean是否自动开始播放,默认 false 。
loopBoolean是否循环播放,默认 false。
obeyMuteSwitchBoolean是否遵循系统静音开关,默认 true,当此参数为 false 时,即使用户打开了静音开关,也能继续发出声音。
durationNumber当前音频的长度(单位:s),只有在当前有合法的 src 时返回 。
currentTimeNumber当前音频的播放位置(单位:s),只有在当前有合法的 src 时返回,时间不取整,保留小数点后 6 位 。
pausedBoolean当前状态:true 表示暂停或停止,false 表示正在播放。
volumeNumber音量,范围 0~1。

支持格式 :

格式iOSAndroid
flac
amr
wma
ogg
ape
mp4
m4a
wav
mp3
aac
aiff
caf

示例

扫码体验

InnerAudioContext - 图1请使用百度APP扫码

图片示例

InnerAudioContext - 图2

InnerAudioContext - 图3

InnerAudioContext - 图4

代码示例1 :

在开发者工具中预览效果

  • 在 js 文件中
  1. Page({
  2. onLoad() {
  3. // 每次触发就会注册一次回调事件,所以只需把所有回调写在onLoad中即可
  4. const innerAudioContext = swan.createInnerAudioContext();
  5. innerAudioContext.src = 'https://vd3.bdstatic.com/mda-ic7mxzt5cvz6f4y5/mda-ic7mxzt5cvz6f4y5.mp3';
  6. innerAudioContext.autoplay = false;
  7. innerAudioContext.onPlay(res => {
  8. swan.showToast({
  9. title: 'play',
  10. icon: 'none'
  11. });
  12. console.log('onPlay', res);
  13. });
  14. innerAudioContext.onPause(res => {
  15. swan.showToast({
  16. title: 'pause',
  17. icon: 'none'
  18. });
  19. console.log('onPause', res);
  20. });
  21. innerAudioContext.onStop(res => {
  22. swan.showToast({
  23. title: 'stop',
  24. icon: 'none'
  25. });
  26. console.log('onStop', res);
  27. });
  28. innerAudioContext.onEnded(res => {
  29. swan.showToast({
  30. title: 'end',
  31. icon: 'none'
  32. });
  33. console.log('onEnded', res);
  34. });
  35. innerAudioContext.onTimeUpdate(res => {
  36. console.log('onTimeUpdate', res);
  37. });
  38. innerAudioContext.onError(res => {
  39. swan.showToast({
  40. title: 'error',
  41. icon: 'none'
  42. });
  43. console.log('onError', res);
  44. });
  45. innerAudioContext.onWaiting(res => {
  46. swan.showToast({
  47. title: 'waiting',
  48. icon: 'none'
  49. });
  50. console.log('onWaiting', res);
  51. });
  52. this.innerAudioContext = innerAudioContext;
  53. },
  54. play() {
  55. this.innerAudioContext.play();
  56. },
  57. pause() {
  58. this.innerAudioContext.pause();
  59. },
  60. stop() {
  61. this.innerAudioContext.stop();
  62. },
  63. seek() {
  64. this.innerAudioContext.seek(10);
  65. },
  66. destroy() {
  67. this.innerAudioContext.destroy();
  68. },
  69. offTimeUpdate() {
  70. this.innerAudioContext.offTimeUpdate(res => {
  71. swan.showToast({
  72. title: 'offTimeUpdate',
  73. icon: 'none'
  74. });
  75. console.log('offTimeUpdate', res);
  76. });
  77. }
  78. });

代码示例2 - 设置obeyMuteSwitch为false,否则用户在系统静音的情况下,会认为api不能播放 :

在开发者工具中预览效果

  • 在 js 文件中
  1. Page({
  2. onLoad() {
  3. // 每次触发就会注册一次回调事件,所以只需把所有回调写在onLoad中即可
  4. const innerAudioContext = swan.createInnerAudioContext();
  5. innerAudioContext.src = 'https://vd3.bdstatic.com/mda-ic7mxzt5cvz6f4y5/mda-ic7mxzt5cvz6f4y5.mp3';
  6. innerAudioContext.autoplay = false;
  7. innerAudioContext.obeyMuteSwitch = false;
  8. innerAudioContext.onPlay(res => {
  9. swan.showToast({
  10. title: 'play',
  11. icon: 'none'
  12. });
  13. console.log('onPlay', res);
  14. });
  15. innerAudioContext.onPause(res => {
  16. swan.showToast({
  17. title: 'pause',
  18. icon: 'none'
  19. });
  20. console.log('onPause', res);
  21. });
  22. innerAudioContext.onStop(res => {
  23. swan.showToast({
  24. title: 'stop',
  25. icon: 'none'
  26. });
  27. console.log('onStop', res);
  28. });
  29. innerAudioContext.onEnded(res => {
  30. swan.showToast({
  31. title: 'end',
  32. icon: 'none'
  33. });
  34. console.log('onEnded', res);
  35. });
  36. innerAudioContext.onTimeUpdate(res => {
  37. console.log('onTimeUpdate', res);
  38. });
  39. innerAudioContext.onError(res => {
  40. swan.showToast({
  41. title: 'error',
  42. icon: 'none'
  43. });
  44. console.log('onError', res);
  45. });
  46. innerAudioContext.onWaiting(res => {
  47. swan.showToast({
  48. title: 'waiting',
  49. icon: 'none'
  50. });
  51. console.log('onWaiting', res);
  52. });
  53. this.innerAudioContext = innerAudioContext;
  54. },
  55. play() {
  56. this.innerAudioContext.play();
  57. },
  58. pause() {
  59. this.innerAudioContext.pause();
  60. },
  61. stop() {
  62. this.innerAudioContext.stop();
  63. },
  64. seek() {
  65. this.innerAudioContext.seek(10);
  66. },
  67. destroy() {
  68. this.innerAudioContext.destroy();
  69. },
  70. offTimeUpdate() {
  71. this.innerAudioContext.offTimeUpdate(res => {
  72. swan.showToast({
  73. title: 'offTimeUpdate',
  74. icon: 'none'
  75. });
  76. console.log('offTimeUpdate', res);
  77. });
  78. }
  79. });