InnerAudioContext.destroy

解释:销毁当前实例

方法参数

示例

在开发者工具中预览效果

扫码体验

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

图片示例

InnerAudioContext.destroy - 图2

InnerAudioContext.destroy - 图3

InnerAudioContext.destroy - 图4

代码示例

  • 在 swan 文件中
  1. <view class="container">
  2. <view class="card-area">
  3. <button type="primary"
  4. bindtap="onTap">创建并销毁一个新实例</button>
  5. </view>
  6. </view>
  • 在 js 文件中
  1. Page({
  2. data: {
  3. disabled: true
  4. },
  5. onLoad() {
  6. const innerAudioContext = swan.createInnerAudioContext();
  7. innerAudioContext.src = 'https://vd3.bdstatic.com/mda-ic7mxzt5cvz6f4y5/mda-ic7mxzt5cvz6f4y5.mp3';
  8. innerAudioContext.autoplay = false;
  9. innerAudioContext.onEnded(() => {
  10. })
  11. innerAudioContext.play();
  12. },
  13. onTap() {
  14. // 在实际项目中,若一个页面有两种形式的语音播放,如:一个是播放语音列表里的语音,一个是预听待提交的语音。这两种的onPlay和onEnd回调内部执行的不一样,不可能在onLoad里面用同一个回调,所以需要创建两个innerAudioContext实例对象时,可在当前音频播放结束的onEnd的回调事件里面和音频播放错误onError回调事件里,调用destory方法销毁该实例。
  15. createInnerAudioContextTask = new Promise((resolve, reject) => {
  16. const innerAudioContext = swan.createInnerAudioContext();
  17. innerAudioContext.src = 'https://vd3.bdstatic.com/mda-ic7mxzt5cvz6f4y5/mda-ic7mxzt5cvz6f4y5.mp3';
  18. innerAudioContext.autoplay = false;
  19. innerAudioContext.onEnded(() => {
  20. innerAudioContext.destroy();
  21. })
  22. innerAudioContext.play();
  23. innerAudioContext.onPlay(res => {
  24. resolve();
  25. console.log('onPlay', res);
  26. });
  27. this.innerAudioContext = innerAudioContext;
  28. })
  29. .then(destroyTask => {
  30. swan.showModal({
  31. title: 'destroy',
  32. content: '销毁实例成功'
  33. });
  34. this.innerAudioContext.destroy();
  35. })
  36. }
  37. });