国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

讓在線教學(xué)更靈活,你還需知道:如何讓Sakai里的視頻“活”起來

2016-11-22 06:24:16馬晨輝趙春徐艷艷沈富可
中國教育網(wǎng)絡(luò) 2016年8期
關(guān)鍵詞:視頻文件播放器開源

文/馬晨輝 趙春,2 徐艷艷 沈富可

讓在線教學(xué)更靈活,你還需知道:如何讓Sakai里的視頻“活”起來

文/馬晨輝1趙春1,2徐艷艷1沈富可1

作為世界上最大的開源教學(xué)平臺,Sakai系統(tǒng)對視頻功能的支持卻相對簡單,難以滿足高校日常化教學(xué)的需要,這也是目前很多高校在使用Sakai來建設(shè)教學(xué)平臺過程中面對的共同問題。

Sakai是由美國印第安納大學(xué)、密西根大學(xué)、斯坦福大學(xué)、麻省理工學(xué)院于2004年共同開發(fā)的開源課程管理系統(tǒng);目前,Sakai在世界范圍內(nèi)被廣泛使用,在國內(nèi)外一流高校中的應(yīng)用尤為普遍,已日益成為高校教學(xué)過程中的重要手段。

Sakai系 統(tǒng) 以J2EE中 的Spring + Hibernate框架作為其基本框架,為用戶提供基本表示層和交互服務(wù);具體的教學(xué)功能主要以工具插件的形式給用戶提供服務(wù),如通知、日程、課程大綱、論壇、作業(yè)、在線測試等工具,為用戶提供課程內(nèi)容組織、課程資源管理、在線交流等服務(wù)。

近年來,隨著視頻公開課和MOOC的發(fā)展,教學(xué)視頻逐漸成為各類教學(xué)平臺的核心內(nèi)容。以教學(xué)和視頻為關(guān)鍵字搜索近十年的研究文獻,先以“視頻”和“教學(xué)”同時為關(guān)鍵字搜索的文獻數(shù)量,再單獨以“教學(xué)”為關(guān)鍵字搜索到的文獻情況,結(jié)果如表1:

表 1 近十年視頻在教學(xué)研究中的比例趨勢

表1中各列第二行與第三行的比例,可以視作教學(xué)研究中對視頻研究的熱度,如圖1所示。

圖 1 近十年視頻在教學(xué)研究中的比例趨勢

從圖1中不難發(fā)現(xiàn),近十年對教學(xué)視頻的研究呈迅速增長的態(tài)勢,尤其是從2012年開始,隨著MOOC的興起,在教學(xué)平臺中引入教學(xué)視頻迅速成為近年教學(xué)研究的熱點。然而,這一波研究浪潮與Sakai教學(xué)平臺關(guān)聯(lián)甚少。以Sakai和視頻為關(guān)鍵字進行搜索,僅搜到兩篇文獻?!兑曨l播放控件在Sakai中的兼容性實踐》從本地化的角度,針對Sakai自帶視頻插件的編碼問題,分析了不能正常播放教學(xué)視頻的原因,并提出了解決方法;《開源視頻系統(tǒng)在Sakai中的集成與應(yīng)用》引入了開源視頻系統(tǒng)Kaltura,使用插件開發(fā)的方式拓展Sakai系統(tǒng)對視頻的支持。

作為世界上最大的開源教學(xué)平臺,Sakai系統(tǒng)對視頻功能的支持卻相對簡單,難以滿足高校日?;虒W(xué)的需要,這也是目前很多高校在使用Sakai來建設(shè)教學(xué)平臺過程中面對的共同問題;而目前已有研究僅僅局限對本地化問題的解決和獨立插件與開源系統(tǒng)對接,沒有考慮到視頻資源與其他教學(xué)資源以及知識單元的關(guān)聯(lián)性,難以實現(xiàn)在教學(xué)平臺中將教學(xué)內(nèi)容與視頻的深入整合,因此有必要對Sakai與視頻的契合展開研究,這也是本文的研究起點。

圖 2 Sakai原生視頻框架

系統(tǒng)架構(gòu)設(shè)計

針對Sakai平臺對視頻支持薄弱這一現(xiàn)狀,筆者從Sakai視頻支持框架著手,分析該框架存在的缺陷,并對Sakai教學(xué)平臺視頻支持實施重新設(shè)計,將視頻服務(wù)從Sakai平臺的耦合中獨立出來,同時對Sakai的教學(xué)資源整合工具Lessonbuilder進行二次開發(fā),并與視頻平臺進行對接,從而優(yōu)化視頻資源的管理與提高訪問視頻服務(wù)的用戶體驗。

Sakai原生框架分析

Sakai對視頻的支持零散而單一,其視頻支持框架如圖2所示。

從圖2中可以看出,Sakai系統(tǒng)自身對視頻的支持主要通過Lessonbuilder和Content組件進行集成。Lessonbuilder組件主要集成了視頻上傳和播放的入口,用戶可以通過上傳模塊上傳本地PC上的視頻、引用視頻鏈接以及獲取已經(jīng)上傳的視頻并將請求提交給Content組件進行后續(xù)處理,上傳成功之后通過調(diào)用自帶Flash視頻播放器進行視頻播放;Content組件是Sakai的資源統(tǒng)一管理組件,接收來自Lessonbuilder組件的上傳請求后,將文件名進行編碼并存儲到Sakai自身服務(wù)器存儲上,并生成文件訪問映射寫入數(shù)據(jù)庫記錄中,當(dāng)接收到來自Lessonbuilder的訪問視頻請求時,通過數(shù)據(jù)庫的映射記錄來訪問視頻文件。

盡管原有的視頻框架能夠滿足最基本的視頻資源需求,但同時也伴隨著無法忽視的缺陷:

1.視頻播放存在性能瓶頸。

相對于教學(xué)平臺的其他功能模塊,視頻上傳、存儲及播放有其特殊性,隨著視頻資源及的用戶數(shù)增加,對服務(wù)器的CPU、內(nèi)存、I/O、帶寬、存儲空間的要求會急劇增加,從而影響教學(xué)平臺其他基本功能的響應(yīng),造成系統(tǒng)等待超時甚至宕機,這是非常大的故障風(fēng)險點。

2.視頻播放器的兼容性較差。

Sakai系統(tǒng)自帶視頻播放器對視頻文件的兼容性及用戶終端對視頻播放器的兼容性都有一定的問題。在Lessonbuilder組件中上傳視頻資源后,系統(tǒng)自動調(diào)用Flash播放器進行視頻播放,而Flash視頻播放器本身支持的視頻格式較少。同時,隨著移動設(shè)備的普及與校園無線網(wǎng)絡(luò)的全覆蓋,越來越多的人使用各種移動終端來訪問系統(tǒng),而Sakai自帶Flash播放器在移動設(shè)備上的兼容性較差,在這些終端上往往無法正常播放。

3.視頻管理缺乏統(tǒng)一標(biāo)準(zhǔn)。

在Sakai教學(xué)平臺中,系統(tǒng)本身對上傳視頻的格式?jīng)]有任何過濾和限制,也沒有提供統(tǒng)一轉(zhuǎn)換視頻編碼的功能支持,用戶可以上傳任意格式的視頻甚至非視頻文件,而實際上由于其自帶播放器在兼容性上的缺陷,從而導(dǎo)致了并不是每個上傳的視頻都能夠正常播放,同時也造成了資源管理上的混亂。

Sakai新框架設(shè)計

針對原有視頻支持框架的弊端,對視頻框架進行重新設(shè)計,如圖3所示。

圖 3 重新設(shè)計的視頻框架

在新的視頻框架中,將視頻服務(wù)獨立出來,以接口服務(wù)的形式對Sakai系統(tǒng)中的組件提供支持。同時,對Lessonbuilder組件中的用戶層進行二次開發(fā),調(diào)用視頻平臺上傳接口進行視頻資源上傳,并將返回的視頻訪問信息存入數(shù)據(jù)庫,實現(xiàn)本地僅僅存放引用,而不存放文件本身。另外,替換Lessonbuilder組件自帶視頻播放器,結(jié)合視頻平臺轉(zhuǎn)碼服務(wù),實現(xiàn)視頻編碼格式的統(tǒng)一與播放的穩(wěn)定性。

視頻上傳流程設(shè)計

獨立的視頻平臺能夠避免多用戶并發(fā)訪問給教學(xué)平臺本身帶來額外的壓力,同時新增的視頻轉(zhuǎn)碼服務(wù)對視頻的編碼格式進行統(tǒng)一處理,增加了視頻的可播放性,系統(tǒng)主要邏輯如圖4所示。

視頻服務(wù)器接收到上傳請求時,將視頻文件保存在視頻服務(wù)器的存儲上。目前,由于MP4幾乎能夠被所有移動設(shè)備、操作系統(tǒng)原生支持,有著非常良好的兼容性,因此采用MP4作為系統(tǒng)中的統(tǒng)一編碼格式。視頻服務(wù)器對用戶上傳的視頻編碼進行判斷,如果不是MP4格式,則調(diào)用轉(zhuǎn)碼服務(wù)將其轉(zhuǎn)成MP4格式之后再存儲。存儲成功后生成視頻id并保存視頻相關(guān)信息至數(shù)據(jù)庫,同時返回視頻的訪問地址等信息。

視頻上傳結(jié)束,用戶可以直接訪問返回的視頻播放地址,或是使用播放器進行視頻播放。

當(dāng)視頻服務(wù)器接收到刪除請求時,根據(jù)請求的視頻id,刪除相應(yīng)的視頻文件和數(shù)據(jù)庫記錄,并返回刪除結(jié)果。

圖 4 獨立視頻服務(wù)

系統(tǒng)開發(fā)與集成

基于以上系統(tǒng)架構(gòu)設(shè)計,需要進行視頻系統(tǒng)開發(fā)、Lessonbuilder組件二次開發(fā)以及Sakai系統(tǒng)與視頻系統(tǒng)的集成。

視頻系統(tǒng)二次開發(fā)

為了不影響視頻系統(tǒng)本身的正常運行,需要將待開發(fā)的功能與原有功能進行代碼層面的隔離,因此需要在原有視頻系統(tǒng)的基礎(chǔ)上做增量開發(fā)。

1.基本功能分析

視頻系統(tǒng)主要包括上傳視頻和刪除視頻兩個功能。為了統(tǒng)一視頻的編碼格式,系統(tǒng)還應(yīng)當(dāng)包含視頻編碼轉(zhuǎn)換的功能。

2.功能用例描述

為了增加系統(tǒng)的可擴展性,這里不具體定義上傳和刪除視頻請求的客戶端(Client),具體對接時再詳細(xì)定義。通過用例圖進行功能描述,如圖5所示。

3.基本類與主要成員描述

系統(tǒng)收到客戶端請求后,一方面要對上傳的文件進行操作,另一方面需要記錄視頻的相關(guān)信息以及請求的相關(guān)參數(shù),因此基本類應(yīng)劃分為文件操作類和數(shù)據(jù)庫操作類,基本類及其主要成員如圖6所示。

UploadHandler是處理視頻上傳文件的基本類,主要成員變量options是數(shù)組類型的數(shù)據(jù),主要描述了服務(wù)器上存儲視頻的目錄;成員方法中,handle_ file_upload是處理視頻文件上傳的主要方法,上傳完成后,再執(zhí)行g(shù)enerate_response方法,回傳相關(guān)信息給請求的客戶端。

content_model是數(shù)據(jù)庫操作基本類,主要成員變量category用來記錄視頻所在的欄目,便于視頻的分類處理;成員方法add_content(data)在上傳時將視頻相關(guān)信息記錄至數(shù)據(jù)庫,delete_content(id, catid)方法用來刪除已經(jīng)存在的視頻。

圖5 功能用例描述

4.數(shù)據(jù)庫設(shè)計

視頻系統(tǒng)在存儲視頻時,需要將視頻的相關(guān)信息存入數(shù)據(jù)庫,刪除視頻時也需要根據(jù)數(shù)據(jù)庫中已有的記錄進行操作,其數(shù)據(jù)庫表結(jié)構(gòu)如下:

由于用戶上傳視頻的編碼格式多種多樣,而用戶觀看視頻使用的終端設(shè)備以及瀏覽器也不盡相同,很可能會因為兼容性問題而出現(xiàn)視頻無法播放的情況。為了增加視頻播放的兼容性,需要將視頻的編碼格式進行統(tǒng)一。MP4是當(dāng)前世界上較為主流的一種視頻封裝格式,能夠兼容絕大多數(shù)瀏覽器,更是當(dāng)前流行的Html5技術(shù)原生支持的視頻格式,因此在本系統(tǒng)中采用MP4作為統(tǒng)一視頻編碼格式。

FFMPEG是一個集錄制、轉(zhuǎn)換、音/視頻編解碼功能為一體的、完整的開源解決方案,支持MPEG、DivX、MPEG4、AC3、DV、FLV等40多種編碼,AVI、MPEG、OGG、ASF等90多種解碼,完全能夠滿足本系統(tǒng)的轉(zhuǎn)碼需求。

Lessonbuilder組件二次開發(fā)

圖6 基本類與主要成員描述

Lessonbuilder是Sakai平臺中的教學(xué)內(nèi)容組織工具,它可以將各種教學(xué)文檔、圖片、音視頻、作業(yè)、在線測試、討論主題等教學(xué)元素按照特定的方式組織起來,并呈現(xiàn)完整的知識單元與情境,實現(xiàn)了各類教學(xué)資源的深度融合。

表 2 視頻信息表video

根據(jù)新的視頻框架設(shè)計,為了與獨立的視頻平臺進行對接,需要對Lessonbuilder組件中的視頻上傳模塊進行二次開發(fā),并替換播放模塊中自帶的播放器。

Lessonbuilder組 建 使 用 了 RSF(Reasonable Server Faces)開發(fā)框架,RSF是一個基于Spring的輕量級開源框架,用戶層使用純XHTML模板進行開發(fā)。

1.前端頁面開發(fā)

在Lessonbuilder組件中,用戶層上傳視頻的模板文件是ShowPage.html,需要對其中的上傳視頻部分的代碼進行二次開發(fā),首先需要修改前臺頁面,主要代碼如下:

<!--視頻上傳表單--提交至視頻服務(wù)器-->

<!-- 文件上傳標(biāo)簽及上傳進度-->

<!--隱藏待提交視頻信息視頻信息-->

<!--上傳文件返回地址-->

<!--上傳分類-->

<!--視頻名稱-->

<!--提交按鈕-->

<!--提交視頻表單--保存在Sakai系統(tǒng)-->

在這個頁面中主要包含兩個表單,一是提交至視頻服務(wù)器的表單,用來將視頻文件和視頻信息提交至服務(wù)器;另一個是提交至Sakai系統(tǒng)的隱藏表單,用來暫存視頻系統(tǒng)返回的視頻訪問信息,為了簡化呈現(xiàn)給用戶的信息,這個表單在樣式上對用戶透明。

然后使用JavaScript技術(shù)開發(fā)前端上傳功能,首先通過jQueryFileUpload插件上傳視頻文件,再使用Ajax技術(shù)提交視頻相關(guān)信息至視頻平臺,同時將回傳視頻訪問信息保存至Sakai系統(tǒng)中,主要代碼如下:

//上傳文件至視頻服務(wù)器

jQuery('#fileupload').fileupload({

url: url, dataType: 'json', formAcceptCharset: 'utf-8', done: function(e, data) {

jQuery.each(data.result.files, function(index, file) { if (file.error) {

alert("上傳文件出錯:" + file.error);

} else {

$('#commit_videoinfo_tip').html("上傳成功,請?zhí)顚懸曨l信息并提交。"); $('#hiddenvidoeinfo').show();

}});},

//提交視頻信息至視頻服務(wù)器

$.ajax({

type:"post", url:url, data:datas,//提交表單success:function(msg){

try {

var dataObj=eval("("+msg+")"); }catch(exception) {

alert("服務(wù)端執(zhí)行出錯,嘗試重新上傳。"); return false; }

$('#mm-add-item').click();//觸發(fā)回傳信息保存至Sakai系統(tǒng)

},});

//保存信息至Sakai系統(tǒng)function UpTolocal(){

var mydata=jQuery('#upload-form').serialize();

//將上傳產(chǎn)生的數(shù)據(jù)保存到本地數(shù)據(jù)庫

jQuery.ajax({

url:url,data: vdata,

success:function(data){

// alert("保存到數(shù)據(jù)庫成功"); }});

}

其中,通過用戶點擊頁面中的保存按鈕,觸發(fā)Ajax提交表單至視頻服務(wù)器,返回的結(jié)果以JSON格式存儲在msg變量中;從msg變量中解析出視頻文件在服務(wù)器上的邏輯訪問名,再與固定URL進行拼接,從而形成可訪問的視頻地址;最后通過自動觸發(fā)隱藏表單中提交按鈕的click事件,調(diào)用UpToLocal函數(shù)將視頻信息提交至Sakai Lessonbuilder組件的控制層。

由于原有的Flash播放器設(shè)備兼容性較差,需要替換兼容性更好的Web播放器,這里我們選用當(dāng)前較為流行的JWPlayer播放器。JWPlayer是一款開源播放器,支持響應(yīng)式開發(fā),能夠兼容當(dāng)下絕大多數(shù)設(shè)備。

由于用戶可能需要在同一頁面嵌入多個視頻,因此使用IteamArr[i]數(shù)組循環(huán)加載需要播放的視頻。

2.控制層開發(fā)

控制層主要用來獲取前端頁面的請求數(shù)據(jù),并向模型發(fā)送數(shù)據(jù)。在Lessonbuilder中新建控制層SaveUploadInfo類,用來控制轉(zhuǎn)發(fā)視頻信息。

其中,使用System.currentTimeMillis函數(shù)獲取當(dāng)前系統(tǒng)時間戳,也就是視頻上傳的時間作為視頻的唯一標(biāo)識id,既能夠記錄視頻上傳的時間,又能在存入數(shù)據(jù)庫時保證數(shù)據(jù)表主鍵的唯一性。

3.邏輯層開發(fā)

Lessonbuilder組件使用Hibernate技術(shù)存儲數(shù)據(jù),因此邏輯層開發(fā)也使用Hibernate對數(shù)據(jù)進行持久化操作。

4.接口開發(fā)

為了實現(xiàn)在Sakai系統(tǒng)中上傳視頻到視頻系統(tǒng),需要在視頻系統(tǒng)中開發(fā)上傳接口。該接口能夠接收來自Sakai系統(tǒng)的視頻上傳請求,并調(diào)用基本類UploadHandler處理上傳,主要代碼如下:

require('UploadHandler.php');

$key=;

$token=$_GET['token'];

$timestamp=$_GET['timestamp'];

if($token==md5($timestamp.$key)){

$upload_dir='uploadfile/video/org/';

$options=array('upload_dir'=>$upload_dir,'upload_ url'=>$upload_dir);

$upload_handler = new UploadHandler($options);

}

代碼中調(diào)用并實例化了基本類UploadHandler來處理上傳,另外使用了時間戳和密鑰拼接,以md5加密的方式作為上傳口令,提高了接口的安全性。

跨域上傳

由于大多數(shù)瀏覽器中存在同源策略(Same-Origin Policy)的安全限制,使得客戶端腳本語言只能訪問在同一域下的內(nèi)容,而教學(xué)平臺和視頻平臺是兩臺不同的服務(wù)器,要求數(shù)據(jù)在不同的域之間進行通信,因此會導(dǎo)致上傳視頻請求失敗。

常用的跨域解決方案有兩種,一種是JSONP方案,主要是針對同源策略不阻止瀏覽器腳本動態(tài)元素插入的特點,通過動態(tài)插入〈Script〉標(biāo)簽,可以實現(xiàn)跨域通信;另一種是CORS,它是一種跨域資源共享方案,通過新增一系列HTTP頭,讓服務(wù)器聲明哪些來源可以通過瀏覽器訪問該服務(wù)器上的資源。

由于JSONP只支持GET請求,GET請求數(shù)據(jù)大小一般限制在2k到200k范圍,服務(wù)器接收GET請求數(shù)據(jù)大小一般也限制在16k以內(nèi),而一般視頻文件的大小遠(yuǎn)遠(yuǎn)超過這個范圍;同時,CORS不僅支持不限制大小的POST請求,也支持GET和OPTIONS請求,因此采用支持多種請求的CORS方案。

在視頻服務(wù)器上的上傳接口中添加接受跨域請求的聲明。

服務(wù)器返回如下響應(yīng)頭,即表示該服務(wù)器接收了客戶端瀏覽器的跨域請求,如圖7所示。

圖7 服務(wù)器返回至客戶端瀏覽器的響應(yīng)頭

系統(tǒng)應(yīng)用效果

功能實現(xiàn)效果

1.上傳視頻

在課程信息(Lessonbuilder)頁面中點擊添加視頻,彈出添加視頻對話框。

點擊“選擇本地文件按鈕”,選則用戶電腦上的視頻文件上傳至視頻平臺;然后填寫視頻標(biāo)題,點擊“保存”按鈕,先后觸發(fā)將視頻信息保存在視頻平臺,并將回傳的視頻訪問地址保存在Sakai系統(tǒng)中。

2. 播放視頻

視頻上傳完成后,頁面上就可以看到剛剛上傳的視頻。

在瀏覽器下方顯示的請求信息中,視頻的請求URL為視頻平臺的地址,用戶觀看視頻時實際上是在訪問視頻平臺,從而減少了對教學(xué)平臺服務(wù)器帶寬、存儲空間等資源的占用,實現(xiàn)了視頻服務(wù)的獨立。

系統(tǒng)應(yīng)用的關(guān)注點

1.視頻轉(zhuǎn)碼方式的考量

在實際應(yīng)用中視頻轉(zhuǎn)碼的處理不見得一定依賴于平臺。對用戶來說,在本地使用轉(zhuǎn)碼工具轉(zhuǎn)碼后再上傳,需要少量的本地操作,比直接上傳轉(zhuǎn)碼略多一些操作的時間;然而當(dāng)視頻文件體積較大或者網(wǎng)絡(luò)情況較差時,大大增加的等待時間會帶來一定的不確定性,上傳操作會一直占用頁面,由于HTTP上傳無法暫停,視頻上傳一旦中斷,用戶必須重新上傳,大大降低了用戶體驗。

同時,由于視頻轉(zhuǎn)碼主要與CPU頻率相關(guān),隨著個人PC的飛速發(fā)展,用戶終端的CPU頻率往往不遜于服務(wù)器CPU,而網(wǎng)絡(luò)傳輸與并發(fā)壓力往往帶來一定的不確定性。因此建議在頁面上增加提示信息,提示用戶盡量上傳MP4格式的視頻以減少等待時間。

2.視頻平臺選型的考量

在視頻平臺選型方面,一般有商業(yè)平臺和開源平臺兩種選擇。商業(yè)平臺的優(yōu)勢在于有完善的項目和案例經(jīng)驗,有專門的商業(yè)團隊承擔(dān)平臺的部署實施和運維,節(jié)省了高校信息化部門的人力成本,不足之處在于平臺核心代碼封閉,難以了解平臺內(nèi)部運行機制,定制較為困難;開源平臺的優(yōu)勢在于核心代碼開放,可以針對特定需求靈活定制,缺點是需要對開源平臺進行大量深入的研究與本地化工作,部署開發(fā)與維護的人力成本較高,同時平臺迭代速度較快,定制開發(fā)在平臺升級后會產(chǎn)生額外的功能遷移工作。

由于作者所在學(xué)校已經(jīng)存在一套正在運行的商業(yè)視頻平臺,因此沒有嘗試使用開源的視頻平臺。本文中所有的研發(fā)工作都是在不影響原有平臺功能的基礎(chǔ)上做的增量,開發(fā)了教學(xué)平臺上傳視頻的專用接口。

本文在分析Sakai架構(gòu)的基礎(chǔ)上,針對Sakai 目前對視頻支持不足的問題,進行了視頻服務(wù)集成開發(fā)過程及使用效果,為完善高校教學(xué)使用Sakai建設(shè)教學(xué)平臺起到了積極的作用。同時,獨立出來的視頻服務(wù),日后也可以應(yīng)用在其他平臺上,為高校集成視頻服務(wù)建設(shè)提供一種思路。為了提升整體教學(xué)平臺的可用性,筆者的后續(xù)研究將關(guān)注以下幾點:(1)增加數(shù)據(jù)收集功能,能夠統(tǒng)計Sakai里使用了視頻整合這塊的課程,分析視頻整合工具的使用率,關(guān)注視頻應(yīng)用的實際效果;(2)關(guān)注視頻平臺的性能,以及可行的提升性能的手段。

(作者單位:1為華東師范大學(xué)信息化辦公室,2為華東師范大學(xué)教育學(xué)部教育信息技術(shù)學(xué)系)

注:本文中有大量代碼,由于版面原因不能全部展示,完整版本可參照《中國教育網(wǎng)絡(luò)》8月刊電子版,網(wǎng)址為:www.media.edu.cn)

猜你喜歡
視頻文件播放器開源
流媒體視頻文件相似性識別的方法
隨心定制視頻文件的縮略圖
電腦報(2021年23期)2021-07-23 17:36:18
Walkman誕生40周年 索尼適時發(fā)布NW-ZX500和NW-A100系列播放器
五毛錢能買多少頭牛
基于STM32的MP3播放器設(shè)計
電子制作(2019年9期)2019-05-30 09:41:44
Moon ACE播放器/放大器一體機
大家說:開源、人工智能及創(chuàng)新
開源中國開源世界高峰論壇圓桌會議縱論開源與互聯(lián)網(wǎng)+創(chuàng)新2.0
開源計算機輔助翻譯工具研究
播放器背板注塑模具設(shè)計
中國塑料(2015年8期)2015-10-14 01:10:55
连平县| 平谷区| 乌拉特中旗| 永修县| 桐庐县| 苗栗县| 东安县| 宁河县| 和政县| 红安县| 宁夏| 光泽县| 怀来县| 新津县| 迁安市| 辽中县| 依兰县| 梁山县| 资源县| 电白县| 沾化县| 五原县| 定结县| 芦山县| 台前县| 大洼县| 那坡县| 大同县| 玉林市| 综艺| 五常市| 罗甸县| 滦南县| 青州市| 张掖市| 焦作市| 广南县| 兴海县| 南华县| 隆安县| 泗阳县|