欧美综合影院在线影院,国产精品女人久久久久久,日韩精品无码去免费专区,樱花草在线社区WWW日本影院

Menu
小程序資訊
小程序資訊
微信小程序云端解決方案教程四:視頻應(yīng)用場(chǎng)景
時(shí)間:2016-10-15 17:12:00
  • 部署和運(yùn)行
    • 整體架構(gòu)
    • 1. 準(zhǔn)備域名和證書(shū)
    • 2. Nginx 和 Node 代碼部署
    • 3. 配置 HTTPS
    • 4. 域名解析
    • 5. 開(kāi)通 點(diǎn)播服務(wù)
    • 6. 準(zhǔn)備 云數(shù)據(jù)庫(kù)MySQL
    • 7. 啟動(dòng)新片預(yù)告示例 Node 服務(wù)
    • 8. 啟動(dòng)新片預(yù)告 Demo
  • 主要功能實(shí)現(xiàn)
    • 獲取視頻列表、展示評(píng)論、提交評(píng)論
    • 播放視頻
Tencent Cloud

新片預(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è)滾動(dòng)加載視頻列表
  • 點(diǎn)擊海報(bào)跳轉(zhuǎn)至詳情頁(yè)播放視頻
  • 對(duì)視頻進(jìn)行評(píng)論
  • 展示視頻的評(píng)論列表

部署和運(yùn)行

拿到了本小程序源碼的朋友可以嘗試自己運(yùn)行起來(lái)。

整體架構(gòu)

1. 準(zhǔn)備域名和證書(shū)

在微信小程序中,所有的網(wǎng)路請(qǐng)求受到嚴(yán)格限制,不滿(mǎn)足條件的域名和協(xié)議無(wú)法請(qǐng)求,具體包括:

  • 只允許和在 MP 中配置好的域名進(jìn)行通信,如果還沒(méi)有域名,需要注冊(cè)一個(gè)。
  • 網(wǎng)絡(luò)請(qǐng)求必須走 HTTPS 協(xié)議,所以你還需要為你的域名申請(qǐng)一個(gè) SSL 證書(shū)。

騰訊云提供域名注冊(cè)證書(shū)申請(qǐng)服務(wù),還沒(méi)有域名或者證書(shū)的可以去使用

域名注冊(cè)好之后,可以登錄微信公眾平臺(tái)配置通信域名了。

注意:需要將 www.qcloud.la 設(shè)置為上面申請(qǐng)的域名

2. Nginx 和 Node 代碼部署

小程序服務(wù)要運(yùn)行,需要進(jìn)行以下幾步:

  • 部署 Nginx,Nginx 的安裝和部署請(qǐng)大家自行搜索(注意需要把 SSL 模塊也編譯進(jìn)去)
  • 配置 Nginx 反向代理到 http://127.0.0.1:9994
  • Node 運(yùn)行環(huán)境,可以安裝 Node V6.6.0
  • 部署 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ù)部署

3. 配置 HTTPS

鏡像中已經(jīng)部署了 nginx,需要在 /etc/nginx/conf.d 下修改配置中的域名、證書(shū)、私鑰。

配置完成后,即可啟動(dòng) nginx。

nginx

4. 域名解析

我們還需要添加域名記錄解析到我們的云服務(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)。

5. 開(kāi)通 點(diǎn)播服務(wù)

新片預(yù)告示例的播放資源是存儲(chǔ)在 騰訊云點(diǎn)播 上的mp4文件,要使用 點(diǎn)播 服務(wù),需要登錄 點(diǎn)播 管理控制臺(tái),然后在其中完成以下操作:

  • 上傳視頻資源,點(diǎn)播幾乎支持所有主流的視頻格式上傳
  • 轉(zhuǎn)碼成功后獲取mp4或m3u8源地址

目前微信小程序video組件經(jīng)測(cè)試支持mp4m3u8格式,其中 m3u8 格式只能在手機(jī)上使用,開(kāi)發(fā)者可以使用騰訊云點(diǎn)播控制臺(tái)將視頻源轉(zhuǎn)碼成 mp4 或 m3u8 格式,并且騰訊云點(diǎn)播會(huì)對(duì)播放的資源進(jìn)行CDN加速。

6. 準(zhǔn)備 云數(shù)據(jù)庫(kù)MySQL

示例中拉取的視頻和評(píng)論列表都是存儲(chǔ)在 云數(shù)據(jù)庫(kù) 上,要使用 云數(shù)據(jù)庫(kù) 服務(wù)需要完成以下操作

  • 購(gòu)買(mǎi),注意購(gòu)買(mǎi)的云數(shù)據(jù)庫(kù)需要與云服務(wù)器同在一個(gè)地域分區(qū)
  • 初始化流程,本示例選用的是utf8編碼
  • 點(diǎn)擊云數(shù)據(jù)庫(kù) 控制臺(tái)操作欄的登錄按鈕,登錄到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),所以不再詳述。

7. 啟動(dòng)新片預(yù)告示例 Node 服務(wù)

在鏡像中,新片預(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

8. 啟動(dòng)新片預(yù)告 Demo

在微信開(kāi)發(fā)者工具將新片預(yù)告應(yīng)用包源碼添加為項(xiàng)目,并把源文件config.js中的通訊域名修改成上面申請(qǐng)的域名。

然后點(diǎn)擊調(diào)試即可打開(kāi)新片預(yù)告Demo開(kāi)始體驗(yàn)。

主要功能實(shí)現(xiàn)

獲取視頻列表、展示評(píng)論、提交評(píng)論

通過(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>
  • <cite id="miwy2"></cite>
    <ul id="miwy2"><tfoot id="miwy2"></tfoot></ul>
    <cite id="miwy2"></cite>
        屬性名類(lèi)型說(shuō)明
        src
        咨詢(xún)
        微信掃碼咨詢(xún)
        電話(huà)咨詢(xún)
        400-888-9358