背景:
一個捐步的小程序、類似H5的活動。產(chǎn)品經(jīng)理說要在加背景音樂,每個頁面都需要開關(guān)控制。嚇得我趕緊查閱了一下小程序api。
還好,api是支持背景音樂的:。傳送門:https://developers.weixin.qq.com/miniprogram/dev/api/media/background-audio/BackgroundAudioManager.html
解決:
?1.播放問題:既然api有了,那就不用擔心播放的問題,只需要在app.js的componentDidShow()加入這段代碼就可以了。

小程序api中復制
?2.接下來就是播放的組件問題,需要做一個開關(guān),而且每個頁面都需要。但是小程序每個頁面都是獨立的,也就是說如果我把開關(guān)做成組件化,每個頁面都需要引入這個組件,但是小程序每次打開頁面,相當于就是重新new一個組件。那么怎么控制狀態(tài)呢?第一時間想到的就是用狀態(tài)管理,用狀態(tài)管理去控制組件的開關(guān)。

在app.js中新建?backgroundAudioManager?

開關(guān)的 actions

組件關(guān)鍵代碼
以上就是關(guān)鍵代碼,親測有效。非常簡單,就是利用Redux的管理。需要注意的就是,要把appjs中的backgroundAudioManager,放到一個公共常量中,我是把它放到 taro中,在需要用到的時候再引入即可。有幫助的話給個贊吧~~~