999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

廣播音樂(lè)庫(kù)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

2018-05-14 23:44:59陸彥
學(xué)校教育研究 2018年25期
關(guān)鍵詞:頁(yè)面內(nèi)容音樂(lè)

陸彥

摘要:本文論述了廣播音樂(lè)內(nèi)容庫(kù)的架構(gòu)設(shè)計(jì)及其業(yè)務(wù)流程的具體實(shí)現(xiàn)。基于對(duì)Puppeteer、ElasticSearch、Vue、Cordova等技術(shù)的整合利用,本文實(shí)現(xiàn)了音樂(lè)庫(kù)內(nèi)容的聚合、全文檢索以及構(gòu)建一個(gè)全端選歌應(yīng)用,并將歌曲內(nèi)容提供給廣播制作播出系統(tǒng)的全流程。

關(guān)鍵詞:廣播音樂(lè)庫(kù) Puppeteer ElasticSearch Vue Cordova

一、 引言

近年來(lái),全國(guó)各級(jí)廣播電臺(tái)都在探索和實(shí)踐廣播融媒體的改革轉(zhuǎn)型之路,紛紛上線了廣播融媒體生產(chǎn)平臺(tái),以輔助傳統(tǒng)廣播的制播流程。其主要功能涵蓋了對(duì)音視頻圖文內(nèi)容的采編、匯聚和分發(fā),幫助電臺(tái)的記者、編輯、導(dǎo)播和主持人等角色快捷地制作和播出實(shí)時(shí)性更高、可聽性更強(qiáng)的廣播節(jié)目。目前,廣播融媒體生產(chǎn)平臺(tái)所匯聚的內(nèi)容一般包括互聯(lián)網(wǎng)上的音樂(lè)、新華社和各大報(bào)紙發(fā)布的新聞、門戶網(wǎng)站的RSS、授權(quán)給平臺(tái)進(jìn)行聽眾消息采集的微信公眾號(hào),以及各電臺(tái)采用融媒體生產(chǎn)平臺(tái)制作出的成品融媒體稿件。

其中收錄海量和最新曲目的音樂(lè)庫(kù)作為廣播制播系統(tǒng)的重要內(nèi)容來(lái)源,為直播節(jié)目音樂(lè)單的制作提供了便利的搜索和篩選審核功能。

二、 音樂(lè)庫(kù)系統(tǒng)的架構(gòu)設(shè)計(jì)

廣播音樂(lè)庫(kù)系統(tǒng)的拓?fù)淙鐖D1所示:

圖1 廣播音樂(lè)庫(kù)的系統(tǒng)架構(gòu)

廣播音樂(lè)庫(kù)的目標(biāo)為:專輯曲目齊全、信息搜索高效和選曲審核方便。

整個(gè)音樂(lè)庫(kù)系統(tǒng)架構(gòu)在公有云端。通過(guò)建立音樂(lè)信息采集集群,對(duì)常用的音樂(lè)站點(diǎn)進(jìn)行曲目信息和歌曲文件的持續(xù)性采集,并將海量數(shù)據(jù)和文件存儲(chǔ)到數(shù)據(jù)庫(kù)和分布式存儲(chǔ)中。為了滿足用戶對(duì)于數(shù)據(jù)庫(kù)中的百萬(wàn)級(jí)體量的音樂(lè)元數(shù)據(jù)基于多字段的模糊搜索需求,音樂(lè)庫(kù)系統(tǒng)對(duì)采集下來(lái)的信息進(jìn)行實(shí)時(shí)索引,針對(duì)索引進(jìn)行搜索能夠大幅縮減搜索時(shí)間。海量的音樂(lè)來(lái)自互聯(lián)網(wǎng),在與臺(tái)內(nèi)廣播制播系統(tǒng)通過(guò)內(nèi)容匯聚總線對(duì)接之前,每個(gè)頻率的音樂(lè)編輯需要對(duì)滿足播出要求的歌曲進(jìn)行篩選審核,以劃定一個(gè)可播的歌曲范圍。因此音樂(lè)庫(kù)系統(tǒng)對(duì)用戶提供了一個(gè)覆蓋移動(dòng)和PC端的選曲應(yīng)用,根據(jù)廣播統(tǒng)一用戶管理中,登錄選曲應(yīng)用的音樂(lè)編輯所在的頻率進(jìn)行定向的選曲。

三、 基于Puppeteer的音樂(lè)信息采集

為了自動(dòng)化地獲取這些信息,需要采用Puppeteer框架提供的能力。Puppeteer是Google官方團(tuán)隊(duì)所開發(fā)維護(hù)的Headless Chrome的封裝庫(kù),它基于Chrome DevTools protocol提供了高度封裝的接口方便開發(fā)人員控制瀏覽器。通過(guò)Puppeteer編寫代碼,我們可以在不打開瀏覽器窗口的情況下完成網(wǎng)頁(yè)快照的捕捉、頁(yè)面預(yù)渲染內(nèi)容的獲取、網(wǎng)頁(yè)自動(dòng)化測(cè)試、站點(diǎn)時(shí)間線的跟蹤等。

圖2音樂(lè)信息采集的核心代碼示例

在這段音樂(lè)信息采集的核心代碼示例中,首先引用了Puppeteer庫(kù),并定義了headless瀏覽器和頁(yè)面對(duì)象。通過(guò)page對(duì)象跳轉(zhuǎn)到指定的歌曲頁(yè)面,等待頁(yè)面中名為contentFrame的iframe渲染完畢,獲取曲名和歌手所對(duì)應(yīng)的HTML標(biāo)簽的內(nèi)容。然后攔截了頁(yè)面發(fā)起的所有請(qǐng)求,捕獲了其中類型為media的請(qǐng)求的目標(biāo)地址,即歌曲的鏈接。最后將所有采集到的信息打印出來(lái)。

基于以上思路,可以通過(guò)Puppeteer抓取常見音樂(lè)站點(diǎn)上熱門歌手、專輯所對(duì)應(yīng)的歌曲頁(yè)面,編寫類似的代碼對(duì)其中信息進(jìn)行捕獲入庫(kù)。多個(gè)站點(diǎn)的信息去重和互補(bǔ)后,可以得到較全的音樂(lè)信息庫(kù)。

四、 基于ElasticSearch的音樂(lè)信息實(shí)時(shí)索引和搜索

當(dāng)音樂(lè)信息條目積累到百萬(wàn)級(jí)的時(shí)候,針對(duì)專輯、曲名和歌手多個(gè)字段的模糊搜索所花的時(shí)間將會(huì)嚴(yán)重影響用戶體驗(yàn)。為了高效獲得優(yōu)質(zhì)的搜索結(jié)果,這里采用了基于Apache Lucene的全文搜索引擎ElasticSearch,為音樂(lè)庫(kù)提供索引和搜索服務(wù)。

在我們將音樂(lè)信息采集到數(shù)據(jù)庫(kù)后,可編寫腳本,調(diào)用ElasticSearch對(duì)外提供的Restful API,將信息數(shù)據(jù)送入搜索引擎。ElasticSearch會(huì)自動(dòng)實(shí)時(shí)對(duì)進(jìn)入的數(shù)據(jù)進(jìn)行分詞(專輯、曲名和歌手等中文字段)和建立倒排索引,且用戶可立刻通過(guò)其搜索API立即檢索到這些數(shù)據(jù)。

使用以下Linux命令,對(duì)ElasticSearch中music索引的song類型進(jìn)行歌手歌名匹配搜索:

curl http://localhost:9200/music/song/_search?pretty=true -d '{"query":

{"multi_match":

{ "query":"王菲 偶遇",

"type":"most_fields",

"fields":["songName","artist"] }}}'

該命令對(duì)ElasticSearch發(fā)起多字段匹配搜索(multi_match),目標(biāo)字段是歌曲名和歌手,檢索到的記錄中越多字段匹配關(guān)鍵字得分就越高(most_fields)。這樣就實(shí)現(xiàn)了多關(guān)鍵字的跨字段搜索。得到ElasticSearch返回的搜索結(jié)果示例片段如圖3所示:

ElasticSearch僅耗時(shí)(took)340毫秒就從五百萬(wàn)記錄中檢索到492條滿足條件的結(jié)果,比從數(shù)據(jù)庫(kù)中執(zhí)行相同的搜索耗時(shí)低了近一個(gè)數(shù)量級(jí)。其中評(píng)分(_score)最高的記錄排在結(jié)果數(shù)組(hits)的首位,也正是我們需要的結(jié)果。

五、 基于Vue和Cordova構(gòu)建全端選歌應(yīng)用

音樂(lè)信息的采集和搜索服務(wù)的建成,完成了音樂(lè)庫(kù)的基礎(chǔ)設(shè)施建設(shè)。音樂(lè)編輯還需要在海量曲目中篩選出本臺(tái)擁有版權(quán)的、符合播出要求的歌曲,音樂(lè)庫(kù)才能為電臺(tái)的直播提供能力。

選曲應(yīng)用是音樂(lè)庫(kù)提供的用戶交互界面。音樂(lè)編輯使用本人的廣播統(tǒng)一賬戶登錄選曲應(yīng)用后,應(yīng)用即可獲得其所屬的頻率信息,選歌結(jié)果也將接入到廣播內(nèi)容匯聚總線中該頻率的通道中去。

為了方便音樂(lè)編輯隨時(shí)選曲,選曲應(yīng)用的目標(biāo)是一次開發(fā),多端運(yùn)行。因此在技術(shù)上采用了前端框架Vue構(gòu)建了一個(gè)SPA(單頁(yè)Web應(yīng)用),并通過(guò)Apache Cordova封裝成移動(dòng)應(yīng)用,同時(shí)適配PC端和iOS、Android端的使用。

選曲應(yīng)用主要由歌曲推薦模塊、搜索模塊、播放模塊和已選曲目模塊等主要模塊組成。每個(gè)模塊在Vue中都由模板、代碼和樣式三個(gè)部分組成,模板是頁(yè)面上所包含的內(nèi)容元素,樣式控制它們的顯示和布局,代碼則監(jiān)聽和響應(yīng)頁(yè)面上的事件,動(dòng)態(tài)加載數(shù)據(jù),完成應(yīng)用功能。選曲應(yīng)用的主要功能模塊又由底層抽象出來(lái)的基礎(chǔ)模塊組成,如搜索列表、推薦歌曲列表等。

通過(guò)Vue的官方路由器組件Vue-Router,選曲應(yīng)用實(shí)現(xiàn)了在單個(gè)頁(yè)面中完成主要功能模塊的跳轉(zhuǎn),其用戶體驗(yàn)接近原生App的效果。利用Vue的另一個(gè)重要組件Vuex,選曲應(yīng)用建立了一個(gè)全應(yīng)用獨(dú)立的狀態(tài)存儲(chǔ)池,存儲(chǔ)了應(yīng)用中需要全局存儲(chǔ)的數(shù)據(jù),如:播出列表和播出狀態(tài)等,使得數(shù)據(jù)不因模塊間的切換而丟失。

Vue開發(fā)完成的選曲應(yīng)用經(jīng)過(guò)Webpack打包后,生成靜態(tài)的頁(yè)面文件。其前端提供了適配移動(dòng)端的用戶體驗(yàn),后端則通過(guò)ajax與服務(wù)端ElasticSearch的API進(jìn)行數(shù)據(jù)交互。如圖4所示,音樂(lè)編輯通過(guò)歌曲推薦模塊和搜索模塊獲取曲目,審聽后按紅心按鈕選擇,進(jìn)入已選曲目列表。

Cordova為SPA應(yīng)用提供了與各大移動(dòng)平臺(tái)進(jìn)行對(duì)接的項(xiàng)目環(huán)境和接口。以iOS平臺(tái)為例,Cordova會(huì)生成一個(gè)包含xcode工程文件的項(xiàng)目,將選曲應(yīng)用打包后的靜態(tài)文件放入這個(gè)項(xiàng)目的www目錄中,即可在xcode環(huán)境中進(jìn)行移動(dòng)端的適配、調(diào)試和打包。

選曲應(yīng)用適配iOS平臺(tái),完成兩點(diǎn)工作:首先是將原有采用的HTML5 audio標(biāo)簽的播放模式更換為cordova-plugin-media插件進(jìn)行播放,該插件所提供的能力使得選曲應(yīng)用能夠在退出應(yīng)用后,歌曲仍然能夠在后臺(tái)播放。其次是對(duì)iPhone X的適配,需要在選曲應(yīng)用的首頁(yè)頭部聲明將使用目標(biāo)設(shè)備的全部高度,將xcode項(xiàng)目的Launch Screen File更改為scannerOverlay,這樣應(yīng)用啟動(dòng)后才能撐滿iPhone X的全部界面。為了適配iPhone X的劉海,對(duì)SPA的頁(yè)面頂部要增加一個(gè)樣式,以留出更多空白,確保內(nèi)容不被劉海遮擋。

總結(jié)

廣播音樂(lè)庫(kù)系統(tǒng)在建設(shè)過(guò)程中,充分融合了IT當(dāng)前最新的技術(shù),采用Puppeteer解決了對(duì)海量及最新音樂(lè)曲目的自動(dòng)化采集問(wèn)題;采用ElasticSearch解決了針對(duì)音樂(lè)元數(shù)據(jù)全文檢索性能的問(wèn)題;采用Vue和Cordova實(shí)現(xiàn)了多端可用的選曲應(yīng)用,解決了對(duì)具有版權(quán)的、內(nèi)容安全的歌曲選擇的問(wèn)題。

廣播音樂(lè)庫(kù)系統(tǒng)的全流程貫通和實(shí)現(xiàn)為廣播制播系統(tǒng)豐富了匯聚內(nèi)容的來(lái)源,為頻率欄目提供了新鮮熱門的可播內(nèi)容,增強(qiáng)節(jié)目可聽性的同時(shí)又滿足播出安全性的需要。

猜你喜歡
頁(yè)面內(nèi)容音樂(lè)
大狗熊在睡覺(jué)
刷新生活的頁(yè)面
內(nèi)容回顧溫故知新
圣誕音樂(lè)路
兒童繪本(2017年24期)2018-01-07 15:51:37
主要內(nèi)容
臺(tái)聲(2016年2期)2016-09-16 01:06:53
音樂(lè)
同一Word文檔 縱橫頁(yè)面并存
淺析ASP.NET頁(yè)面導(dǎo)航技術(shù)
音樂(lè)
秋夜的音樂(lè)
主站蜘蛛池模板: 久久77777| 自拍偷拍欧美| 香蕉久久永久视频| 久青草免费在线视频| 欧美日韩亚洲综合在线观看| 国产精品香蕉| 99久视频| 欧美乱妇高清无乱码免费| 在线观看免费国产| 国产一级裸网站| 亚洲第一页在线观看| 国产极品美女在线播放| 成人一区在线| 91外围女在线观看| 国产一区二区三区夜色| 亚洲色无码专线精品观看| 亚洲制服丝袜第一页| 天天躁夜夜躁狠狠躁图片| 国产第二十一页| 国内丰满少妇猛烈精品播| 91欧美亚洲国产五月天| 国产精品13页| 欧美午夜性视频| 福利在线不卡| 亚洲高清免费在线观看| 福利国产在线| 激情综合网址| 丝袜高跟美脚国产1区| 激情综合婷婷丁香五月尤物 | 精品视频福利| 97色婷婷成人综合在线观看| 国产一区二区三区日韩精品 | 国产网站一区二区三区| 54pao国产成人免费视频| 在线另类稀缺国产呦| 波多野结衣久久高清免费| 蜜桃视频一区| 91精品视频在线播放| av在线无码浏览| 亚洲av无码久久无遮挡| 97久久人人超碰国产精品| 在线无码九区| 久久国产亚洲偷自| 亚洲中文字幕国产av| 中文字幕精品一区二区三区视频| 欧美国产精品不卡在线观看| 精品一区二区三区四区五区| 国产va在线观看免费| 1769国产精品视频免费观看| 国产中文在线亚洲精品官网| 国产在线观看第二页| 中文国产成人精品久久一| 色悠久久综合| 一本一本大道香蕉久在线播放| 又黄又湿又爽的视频| 中文字幕一区二区视频| 国模视频一区二区| 老色鬼欧美精品| 国产免费好大好硬视频| 亚洲AⅤ波多系列中文字幕| 久久精品无码中文字幕| 久久久久无码精品| 亚洲成a人片| 多人乱p欧美在线观看| 国产精品视频导航| 熟女日韩精品2区| 在线va视频| 人妻丰满熟妇αv无码| 色综合狠狠操| 欧美精品亚洲精品日韩专| 最新国产成人剧情在线播放| 久无码久无码av无码| 久久国产香蕉| 国产99在线观看| 精品丝袜美腿国产一区| 精品伊人久久久久7777人| 欧洲精品视频在线观看| 国产制服丝袜91在线| 无码aaa视频| 综合久久久久久久综合网| 国产精品自拍合集| 久久一本精品久久久ー99|