新片預(yù)告是結(jié)合騰訊云點(diǎn)播 VOD和云數(shù)據(jù)庫(kù) MySQL制作的一個(gè)微信小程序示例。在代碼結(jié)構(gòu)上包含如下兩部分:
app
: 新片預(yù)告應(yīng)用包代碼,可直接在微信開(kāi)發(fā)者工具中作為項(xiàng)目打開(kāi)server
: 搭建的Node服務(wù)端代碼,作為服務(wù)器和app
通信,提供 CGI 接口示例用于拉取云數(shù)據(jù)庫(kù)上的視頻列表、評(píng)論列表,將評(píng)論數(shù)據(jù)提交到云數(shù)據(jù)庫(kù)新片預(yù)告主要功能如下:
拿到了本小程序源碼的朋友可以嘗試自己運(yùn)行起來(lái)。
在微信小程序中,所有的網(wǎng)路請(qǐng)求受到嚴(yán)格限制,不滿(mǎn)足條件的域名和協(xié)議無(wú)法請(qǐng)求,具體包括:
騰訊云提供域名注冊(cè)和證書(shū)申請(qǐng)服務(wù),還沒(méi)有域名或者證書(shū)的可以去使用
域名注冊(cè)好之后,可以登錄微信公眾平臺(tái)配置通信域名了。
注意:需要將 www.qcloud.la
設(shè)置為上面申請(qǐng)的域名
小程序服務(wù)要運(yùn)行,需要進(jìn)行以下幾步:
http://127.0.0.1:9994
server
目錄的代碼到服務(wù)器上,如 /data/release/qcloud-applet-video
npm install
安裝依賴(lài)模塊npm install pm2 -g
安裝 pm2上述環(huán)境配置比較麻煩,新片預(yù)告的服務(wù)器運(yùn)行代碼和配置已經(jīng)打包成騰訊云 CVM 鏡像,推薦大家直接使用。
- 鏡像部署完成之后,云主機(jī)上就有運(yùn)行 WebSocket 服務(wù)的基本環(huán)境、代碼和配置了。
- 騰訊云用戶(hù)可以免費(fèi)領(lǐng)取禮包,體驗(yàn)騰訊云小程序解決方案。
- 鏡像已包含所有小程序的服務(wù)器環(huán)境與代碼,需要體驗(yàn)小程序的朋友無(wú)需重復(fù)部署
鏡像中已經(jīng)部署了 nginx,需要在 /etc/nginx/conf.d
下修改配置中的域名、證書(shū)、私鑰。
配置完成后,即可啟動(dòng) nginx。
nginx
我們還需要添加域名記錄解析到我們的云服務(wù)器上,這樣才可以使用域名進(jìn)行 HTTPS 服務(wù)。
在騰訊云注冊(cè)的域名,可以直接使用云解析控制臺(tái)來(lái)添加主機(jī)記錄,直接選擇上面購(gòu)買(mǎi)的 CVM。
解析生效后,我們?cè)跒g覽器使用域名就可以進(jìn)行 HTTPS 訪(fǎng)問(wèn)。
新片預(yù)告示例的播放資源是存儲(chǔ)在 騰訊云點(diǎn)播 上的mp4文件,要使用 點(diǎn)播 服務(wù),需要登錄 點(diǎn)播 管理控制臺(tái),然后在其中完成以下操作:
目前微信小程序
video
組件經(jīng)測(cè)試支持mp4
和m3u8
格式,其中 m3u8 格式只能在手機(jī)上使用,開(kāi)發(fā)者可以使用騰訊云點(diǎn)播控制臺(tái)將視頻源轉(zhuǎn)碼成 mp4 或 m3u8 格式,并且騰訊云點(diǎn)播會(huì)對(duì)播放的資源進(jìn)行CDN加速。
示例中拉取的視頻和評(píng)論列表都是存儲(chǔ)在 云數(shù)據(jù)庫(kù) 上,要使用 云數(shù)據(jù)庫(kù) 服務(wù)需要完成以下操作
utf8
編碼登錄
按鈕,登錄到phpMyAdmin創(chuàng)建數(shù)據(jù)庫(kù)
并在當(dāng)前數(shù)據(jù)庫(kù)中導(dǎo)入本示例中的SQL文件注意:導(dǎo)入SQL文件中包含了 點(diǎn)播 上傳的視頻列表,開(kāi)發(fā)者可以基于云數(shù)據(jù)庫(kù)自行開(kāi)發(fā)維護(hù)一個(gè)視頻發(fā)布管理系統(tǒng),因?yàn)榇藘?nèi)容跟本示例暫不相關(guān),所以不再詳述。
在鏡像中,新片預(yù)告示例的 Node 服務(wù)代碼已部署在目錄/data/release/qcloud-applet-video
下:
進(jìn)入該目錄:
cd /data/release/qcloud-applet-video
在該目錄下有個(gè)名為config.js
的配置文件(如下所示),按注釋修改對(duì)應(yīng)的 MySQL 配置:
module.exports = {
// Node 監(jiān)聽(tīng)的端口號(hào)
port: '9994',
ROUTE_BASE_PATH: '/applet',
host: '填寫(xiě)開(kāi)通 MySQL 時(shí)分配的內(nèi)網(wǎng)IP',
user: '填寫(xiě)MySQL用戶(hù)名',
password: '填寫(xiě)MySQL密碼',
database: '填寫(xiě)上一步中創(chuàng)建的MySQL數(shù)據(jù)名',
};
示例使用pm2
管理 Node 進(jìn)程,執(zhí)行以下命令啟動(dòng) node 服務(wù):
pm2 start process.json
在微信開(kāi)發(fā)者工具將新片預(yù)告應(yīng)用包源碼添加為項(xiàng)目,并把源文件config.js
中的通訊域名修改成上面申請(qǐng)的域名。
然后點(diǎn)擊調(diào)試即可打開(kāi)新片預(yù)告Demo開(kāi)始體驗(yàn)。
通過(guò)node的mysql模塊連接mysql,進(jìn)行查詢(xún),插入操作
以下是查詢(xún)?cè)u(píng)論列表的示例代碼
const mysql = require('mysql');
const config = require('../../../config');
let vid = this.req.query.vid;
if (!vid) {
this.res.json({ code: -1, msg: 'failed', data: {} });
return;
}
//CDB Mysql配置
let connection = mysql.createConnection({
host: config.host,
password: config.password,
user: config.user,
database: config.database
});
//開(kāi)啟數(shù)據(jù)庫(kù)連接
connection.connect((err) => {
if (err) {
this.res.json({ code: -1, msg: 'failed', data: {} });
}
});
//查詢(xún)列表
connection.query('SELECT * from comment where vid = ? order by id desc', [vid], (err, result) => {
if (err) {
this.res.json({ code: -1, msg: 'failed', data: {} });
return;
}
this.res.json({
code: 0,
msg: 'ok',
data: result,
});
});
//查詢(xún)完后關(guān)閉連接
connection.end();
<video src="{{videoUrl}}" binderror="videoErrorCallback"></video>
屬性名 | 類(lèi)型 | 說(shuō)明 |
---|---|---|
src
相關(guān)資訊RELEVANT NEWS
集錦服務(wù)SERVICE
最新案例LATEST CASES
咨詢(xún)
|