




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第五章
主講人:XX背景音樂播放與分享本章目標(biāo)-掌握小程序背景音樂播放的API的使用現(xiàn)文章詳情頁面背景音樂功能掌握小程序頁面分享微到信群和朋友圈相關(guān)API的使用實現(xiàn)文章的頁面分享到微信群和朋友圈的功能任務(wù)一:完成多頁面背景音樂播放功能實現(xiàn)背景音樂功能文章頁面背景音樂播放時頁面效果任務(wù)描述:學(xué)習(xí)微信關(guān)于媒體中關(guān)于背景音頻的API的使用,并完成多頁面背景音樂的播放相關(guān)功能實現(xiàn)文章頁面背景音樂播放文章頁面背景音樂播放功能使用BackgroundAudioManager對象相關(guān)方法,而具體使用步驟:通過wx.BackgroundAudioManager的方法獲得一個背景音頻的管理對象設(shè)置BackgroundAudioManager的屬性和調(diào)用方法進(jìn)行背景音樂的控制。通過監(jiān)聽回調(diào)方法對業(yè)務(wù)進(jìn)行控制BackgroundAudioManager對象stringsrc音頻的數(shù)據(jù)源(2.2.3
開始支持云文件ID)。默認(rèn)為空字符串,當(dāng)設(shè)置了新的src時,會自動開始播放,目前支持的格式有m4a,aac,mp3,wav。stringtitle音頻標(biāo)題,用于原生音頻播放器音頻標(biāo)題(必填)。原生音頻播放器中的分享功能,分享出去的卡片標(biāo)題,也將使用該值。stringcoverImgUrl封面圖URL,用于做原生音頻播放器背景圖。原生音頻播放器中的分享功能,分享出去的卡片配圖及背景也將使用該圖。BackgroundAudioManager對象常用的屬性為:BackgroundAudioManager.play()播放音樂。BackgroundAudioManager.pause()暫停音樂BackgroundAudioManager.stop()停止音樂BackgroundAudioManager.onPlay(functioncallback)監(jiān)聽背景音頻播放事件BackgroundAudioManager.onPause(functioncallback)監(jiān)聽背景音頻暫停事件BackgroundAudioManager.onStop(functioncallback)監(jiān)聽背景音頻停止事件BackgroundAudioManager.onEnded(functioncallback)監(jiān)聽背景音頻自然播放結(jié)束事件BackgroundAudioManager對象常用的方法為:官方文檔地址:/miniprogram/dev/api/media/background-audio/BackgroundAudioManager.html實現(xiàn)單頁面背景音樂播放步驟-1步驟1:在文章詳情頁面添加音樂播放開關(guān)。<!--音樂播放開關(guān)-->
<image
catchtap="onMusicTap"class="music"src="{{isPlayingMusic?'/images/icon/wx_app_music_stop.png':'/images/icon/wx_app_music_start.png'}}">
</image>頁面元素代碼:頁面樣式代碼:/*音樂播放*/.music
{
width:
110rpx;
height:
110rpx;
position:
absolute;
left:
50%;
margin-left:
-51rpx;
top:
180rpx;
opacity:
0.9;}實現(xiàn)單頁面背景音樂播放步驟-2步驟2:獲得背景音樂管理對象。data:
{
//文章詳情對象post:
{},
//音樂是否播放標(biāo)簽isPlayingMusic:
false,
//背景音樂播放管理器_backGroundAudioManger:
null,
//音樂對象_palyingMusic:
null
}修改post-detail.js中data屬性,添加音樂管理相關(guān)屬性
onLoad:
function
(options)
{
//獲得文章編號
let
postId
=
options.postId;
this.postDao
=
new
PostDao();
//添加閱讀數(shù)量
this.postDao.addReadCount(postId);
let
postData
=
this.postDao.getPostDetailById(postId);
let
post
=
postData.data;
this.setData({post:post
});
//創(chuàng)建動畫this.setAniation();
//獲取背景音樂播放器
this.data._backGroundAudioManger
=
wx.getBackgroundAudioManager();
//獲得音樂對象
this.data._palyingMusic
=
post.music;
}修改post-detail.js中onLoad方法中代碼,獲取全局背景音樂管理對象實現(xiàn)單頁面背景音樂播放步驟-3步驟3:onMusicTap方法中實現(xiàn)背景音樂的播放與暫定的操作
//播放音樂或暫停音樂
onMusicTap(event)
{
//獲取背景音樂管理器
const
backGroundAudioManger
=
this.data._backGroundAudioManger;
//獲得音樂
const
palyMusic
=
this.data._palyingMusic;
console.log("palyMusic",palyMusic);
//如果正在播放
if(this.data.isPlayingMusic){
backGroundAudioManger.pause();
}
else
{
//設(shè)置音樂屬性
backGroundAudioManger.title
=
palyMusic.title;
backGroundAudioManger.src
=
palyMusic.url;
backGroundAudioManger.coverImgUrl
=
palyMusic.coverImg;
backGroundAudioManger.play();
}
this.setData({isPlayingMusic:
!this.data.isPlayingMusic
});實現(xiàn)單頁面背景音樂播放步驟-4步驟4:在app.json中配置requiredBackgroundModes屬性{
"pages":
[
"pages/welcome/welcome",
"pages/index/index",
"pages/posts/posts",
"pages/test/test",
"pages/post-detail/post-detail",
"pages/post-comment/post-comment"
],
"window":
{
"backgroundTextStyle":
"light",
"navigationBarBackgroundColor":
"#fff",
"navigationBarTitleText":
"Weixin",
"navigationBarTextStyle":
"black"
},
"requiredBackgroundModes":
[
"audio",
"location"
],
"style":
"v2",
"sitemapLocation":
"sitemap.json"}實現(xiàn)單頁面背景音樂播放步驟-5步驟5:在頁面關(guān)閉(執(zhí)行onUnload)主動關(guān)閉音樂
onUnload:
function
()
{
console.log("post-detail:onUnload");
const
backGroundAudioManger
=
this.data._backGroundAudioManger;
backGroundAudioManger.stop();
//停止音樂播放
this.setData({isPlayingMusic:false
});
},實現(xiàn)單頁面背景音樂播放步驟-6步驟6:通過背景音樂監(jiān)聽,控制播放開關(guān)按鈕的狀態(tài)//音樂監(jiān)聽
setMuiscMonitor(){
console.log("=====音樂監(jiān)聽開始========")
//獲取背景音樂管理器
const
backGroundAudioManger
=
this.data._backGroundAudioManger;
//音樂停止監(jiān)聽
backGroundAudioManger.onStop(()=>{
console.log("====setMuiscMonitor===onStop=============");
this.setData({isPlayingMusic:false
});
});
//音樂自然播放結(jié)束
backGroundAudioManger.onEnded(()=>{
console.log("====setMuiscMonitor===onEnded=============");
this.setData({isPlayingMusic:false
});
});需要在onLoad方法中調(diào)用音樂監(jiān)聽的方法實現(xiàn)全局背景音樂播放在微信小程序中背景音樂的API原本設(shè)計為全局背景音樂的,實現(xiàn)全局背景音樂實現(xiàn)步驟:在app.js中設(shè)置全局音樂播放的控制變量。頁面加載時,初始化頁面音樂播放控制變量狀態(tài)。修改音樂控制方法,使得音樂播放控制與全局變量同步。修改音樂監(jiān)聽方法,是的音樂監(jiān)聽與全局變量同步。全局背景音樂播放實現(xiàn)步驟-1步驟1:在app.js中設(shè)置全局音樂播放的控制變量。globalData:
{
//globalMessage:"Iamglobaldata",
//全局控制背景音樂播放狀態(tài)g_isPlayingMuisc:
false,
//全局控制當(dāng)前音樂編號g_currentMusicPosId:null
}全局背景音樂播放實現(xiàn)步驟-2步驟2:頁面加載時,初始化頁面音樂播放控制變量狀態(tài)
//初始化音樂播放圖標(biāo)狀態(tài)
initMusicStatus()
{
let
currentPostId
=
this.data.post.postId;
if(app.globalData.g_isPlayingMuisc
&&
app.globalData.g_currentMusicPosId
===
currentPostId){
this.setData({isPlayingMusic:
true
});
}
else
{
this.setData({isPlayingMusic:
false
});
}
}全局背景音樂播放實現(xiàn)步驟-3步驟3:修改音樂控制方法,使得音樂播放控制與全局變量同步onMusicTap(event)
{
//獲取背景音樂管理器
const
backGroundAudioManger
=
this.data._backGroundAudioManger;
//獲得音樂
const
palyMusic
=
this.data._palyingMusic;
console.log("palyMusic",
palyMusic);
//如果正在播放
if(this.data.isPlayingMusic){
backGroundAudioManger.pause();
app.globalData.g_isPlayingMuisc
=
false;
}
else
{
//設(shè)置音樂屬性
backGroundAudioManger.title
=
palyMusic.title;
backGroundAudioManger.src
=
palyMusic.url;
backGroundAudioManger.coverImgUrl
=
palyMusic.coverImg;
backGroundAudioManger.play();
}
this.setData({isPlayingMusic:
!this.data.isPlayingMusic
});
app.globalData.g_isPlayingMuisc
=
true;
app.globalData.g_currentMusicPosId
=
this.data.post.postId;
}全局背景音樂播放實現(xiàn)步驟-4步驟4:修改音樂監(jiān)聽方法,使得音樂監(jiān)聽與全局變量同步
//音樂監(jiān)聽
setMuiscMonitor()
{
console.log("=====音樂監(jiān)聽開始========")
//獲取背景音樂管理器
const
backGroundAudioManger
=
this.data._backGroundAudioManger;
//音樂停止監(jiān)聽
backGroundAudioManger.onStop(()
=>
{
console.log("====setMuiscMonitor===onStop=============");
this.setData({isPlayingMusic:
false
});
app.globalData.g_isPlayingMuisc
=
false;
});
//音樂自然播放結(jié)束
backGroundAudioManger.onEnded(()
=>
{
console.log("====setMuiscMonitor===onEnded=============");
this.setData({isPlayingMusic:
false
});
app.globalData.g_isPlayingMuisc
=
false;
});顯示音樂的封面圖片根據(jù)頁面中isPalyingMusic音樂播放狀態(tài)的控制變量,來控制post-deital.wxml頁面文章圖片顯示邏輯<image
class="head-image"src="{{isPlayingMusic?post.music.coverImg:post.postImg}}"></image>任務(wù)二:完成文章分享給朋友和朋友圈文章分享功能分享文章到朋友圈任務(wù)描述:接下來在本小節(jié)我們將實現(xiàn)在文章詳情頁面實現(xiàn)分享給朋友、微信群和分享朋友圈的功能。文章分享給朋友、微信群和朋友圈實現(xiàn)頁面的分享功能,需要處理Page對象中兩個方法:onShareAppMessage(Objectobject)監(jiān)聽用戶點擊頁面內(nèi)轉(zhuǎn)發(fā)按鈕(button
組件
open-type="share")或右上角菜單“轉(zhuǎn)發(fā)”按鈕的行為。onShareTimeline()監(jiān)聽右上角菜單“分享到朋友圈”按鈕的行為,并自定義分享內(nèi)容。(從基礎(chǔ)庫2.11.3開始支持)文章分享給朋友、微信群和朋友圈onShareAppMessage(Objectobject):onShareAppMessage方法必須返回一個Object對象,這個對象可以保護以下屬性:title轉(zhuǎn)發(fā)標(biāo)題,默認(rèn)值:當(dāng)前小程序名稱。path轉(zhuǎn)發(fā)路徑,默認(rèn)值:當(dāng)前頁面path,必須是以/開頭的完整路徑。limageUrl自定義圖片路徑,可以是本地文件路徑、代碼包文件路徑或者網(wǎng)絡(luò)圖片路徑。支持PNG及JPG。顯示圖片長寬比是5:4。Promise如果該參數(shù)存在,則以resolve結(jié)果為準(zhǔn),如果三秒內(nèi)不resolve,分享會使用上面?zhèn)魅氲哪J(rèn)參數(shù)onShareTimeline()事件處理函數(shù)返回一個Object,用于自定
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T-ZGXK 024-2024 青儲玉米品種試驗規(guī)范
- 二零二五年度企業(yè)代為管理員工社保繳費及報銷流程合同
- 二零二五年度購房按揭貸款利率調(diào)整合同
- 2025年度酒店入住智能家居體驗合同
- 2025年度汽車零部件訂車合同違約賠償標(biāo)準(zhǔn)及責(zé)任界定
- 二零二五年度公寓樓出租合同樣本(含精裝修、家具家電及物業(yè)費)
- 二零二五年度醫(yī)院藥劑科藥品配送與勞務(wù)合作合同
- 二零二五年度臨時項目經(jīng)理聘用與項目風(fēng)險預(yù)警協(xié)議
- 二零二五年度租賃型住房委托管理服務(wù)合同
- 二零二五年度旅游產(chǎn)業(yè)投資合作框架協(xié)議
- 初中物理競賽及自主招生講義:第7講 密度、壓強與浮力(共5節(jié))含解析
- 農(nóng)村自建房施工合同范本(包工包料)
- 高中主題班會 梁文鋒和他的DeepSeek-由DeepSeek爆火開啟高中第一課-高中主題班會課件
- 污水處理設(shè)施運維服務(wù)投標(biāo)方案(技術(shù)標(biāo))
- 一年級下冊書法教案 (一)
- 2025幼兒園疫情報告制度及流程
- 《浙江省應(yīng)急管理行政處罰裁量基準(zhǔn)適用細(xì)則》知識培訓(xùn)
- 2024年全國職業(yè)院校技能大賽高職組(康復(fù)治療技術(shù)賽項)考試題庫(含答案)
- 2025年山東健康集團招聘筆試參考題庫含答案解析
- 《中外廣播電視史》課件
- 微信公眾號運營
評論
0/150
提交評論