当前位置:   article > 正文

小程序背景音乐及音频播放demo(copy直接使用~)_wx.getbackgroundaudiomanager()如何使用

wx.getbackgroundaudiomanager()如何使用

1.实现效果

 2.实现原理

1、wx.getBackgroundAudioManager :
获取全局唯一的背景音频管理器。 小程序切入后台,如果音频处于播放状态,可以继续播放。但是后台状态不能通过调用API操纵音频的播放状态。

从微信客户端6.7.2版本开始,若需要在小程序切后台后继续播放音频,需要在 app.json 中配置 requiredBackgroundModes 属性。开发版和体验版上可以直接生效,正式版还需通过审核。
2、onUnload和onHide事件中暂停音乐的播放。
3、onShow中调用播放事件
4、在播放结束的事件中,再次播放,以达到循环播放的效果。

 3.实现代码 

  1. <image src="{{checked?'../img/stop.png':'../img/play.png'}}" class="music {{!checked && 'circle'}}" catchtap="checkMusic"></image>
  2. <view catchtap="toNext" class="btn"> 去下一个页面</view>
  1. page {
  2. background-color: aliceblue;
  3. }
  4. .music {
  5. width: 86rpx;
  6. height: 86rpx;
  7. position: absolute;
  8. top: 108rpx;
  9. right: 10rpx;
  10. z-index: 99;
  11. }
  12. .circle {
  13. animation: cirlce 4s linear infinite;
  14. }
  15. @keyframes cirlce {
  16. 0% {
  17. transform: rotate(0deg);
  18. }
  19. 100% {
  20. transform: rotate(359deg);
  21. }
  22. }
  23. .btn {
  24. margin: 550rpx auto 0;
  25. width: 625rpx;
  26. height: 80rpx;
  27. background: linear-gradient(90deg, #dd8449 0%, #e28e74 52%, #dbb290 100%);
  28. border-radius: 6rpx;
  29. font-size: 30rpx;
  30. color: #fff;
  31. line-height: 80rpx;
  32. text-align: center;
  33. position: relative;
  34. overflow: hidden;
  35. }
  36. .btn:after {
  37. content: "";
  38. background: #999;
  39. position: absolute;
  40. width: 750rpx;
  41. height: 750rpx;
  42. left: calc(50% - 375rpx);
  43. top: calc(50% - 375rpx);
  44. opacity: 0;
  45. margin: auto;
  46. border-radius: 50%;
  47. transform: scale(1);
  48. transition: all 0.4s ease-in-out;
  49. }
  1. Page({
  2. data: {
  3. checked: false,
  4. },
  5. onShow: function () {
  6. this.player(wx.getBackgroundAudioManager())
  7. },
  8. checkMusic() {
  9. console.log(11)
  10. this.setData({
  11. checked: !this.data.checked
  12. })
  13. if (this.data.checked) {
  14. wx.getBackgroundAudioManager().pause();
  15. } else {
  16. this.player(wx.getBackgroundAudioManager())
  17. }
  18. },
  19. player(e) {
  20. e.title = '下次一定的音乐'
  21. e.src = "http://music.163.com/song/media/outer/url?id=36587407.mp3"
  22. //音乐播放结束后继续播放此音乐,循环不停的播放
  23. e.onEnded(() => {
  24. this.player(wx.getBackgroundAudioManager())
  25. })
  26. },
  27. // 页面卸载时候暂停播放(不加页面将一直播放)
  28. onUnload: function () {
  29. wx.getBackgroundAudioManager().stop();
  30. },
  31. // 小程序隐藏时候暂停播放(不加页面将一直播放)
  32. onHide() {
  33. wx.getBackgroundAudioManager().stop();
  34. },
  35. toNext() {
  36. wx.navigateTo({
  37. url: '/pages/jsCase/draw/index',
  38. })
  39. }
  40. })

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/473943
推荐阅读
相关标签
  

闽ICP备14008679号