境便捷調(diào)節(jié)及資源制作于一體的新型現(xiàn)代化智慧教室。該方案不僅實(shí)現(xiàn)了教學(xué)資源的數(shù)字化、網(wǎng)絡(luò)化,還通過(guò)智能設(shè)備和平臺(tái)實(shí)現(xiàn)了教學(xué)過(guò)程的自動(dòng)化、智能化,為師生提供了更加便捷、高效、互動(dòng)的學(xué)習(xí)和教學(xué)環(huán)境。
二、主要特點(diǎn)
數(shù)字化教學(xué)資源:智慧教室無(wú)紙化方案提供了豐富海量的數(shù)字化教學(xué)資源,包括電子教材、多媒體課件、在線題庫(kù)等,師生可以隨時(shí)隨地進(jìn)行訪問(wèn)和學(xué)習(xí),打破了傳統(tǒng)紙質(zhì)教材的束縛。
在線學(xué)習(xí)互動(dòng):通過(guò)智慧教室平臺(tái),學(xué)生可以隨時(shí)收聽(tīng)老師的講課內(nèi)容,參與在線討論、提問(wèn)
早報(bào):中國(guó)計(jì)劃推進(jìn)部署ipv6 2020末用戶數(shù)將達(dá)5億:,排名前 10 位平臺(tái)的 50% 云產(chǎn)品;互聯(lián)網(wǎng)骨干網(wǎng)、骨干網(wǎng)網(wǎng)間互聯(lián)體系、城域網(wǎng)和接入網(wǎng),廣電骨干網(wǎng),lte 網(wǎng)絡(luò)及業(yè)務(wù),新增網(wǎng)絡(luò)設(shè)備、固定網(wǎng)絡(luò)終端、移動(dòng)終端。
,市地級(jí)以上政府外網(wǎng)網(wǎng)站系統(tǒng),市地級(jí)以上新聞及廣播電視媒體網(wǎng)站系統(tǒng);大型互聯(lián)網(wǎng)數(shù)據(jù)中心,排名前 10 位的內(nèi)容分發(fā)網(wǎng)絡(luò),排名前 10 位云服務(wù)平臺(tái)的全部云產(chǎn)品;廣電網(wǎng)絡(luò),5g 網(wǎng)絡(luò)及業(yè)務(wù),各類新增移動(dòng)和固定終端
12月1日起網(wǎng)絡(luò)云盤(pán)涉淫穢信息依法可追刑事責(zé)任《最高人民法院最高人民檢察院關(guān)于利用網(wǎng)絡(luò)云盤(pán)制作、復(fù)制、販賣(mài)、傳播淫穢電子信息牟利行為定罪量刑問(wèn)題的批復(fù)》將于2017年12月1日起施行,對(duì)于以牟利為目的,
根據(jù)這兩個(gè)司法解釋,以牟利為目的,利用互聯(lián)網(wǎng)、移動(dòng)通訊終端制作、復(fù)制、出版、販賣(mài)、傳播內(nèi)容含有不滿十四周歲未成年人的淫穢電子信息,具有下列情形之一的,依照刑法第三百六十三條第一款的規(guī)定,以制作、復(fù)制、出版
《條例》還規(guī)定,國(guó)家和地方精神文明建設(shè)指導(dǎo)機(jī)構(gòu)建立志愿服務(wù)工作協(xié)調(diào)機(jī)制,加強(qiáng)對(duì)志愿服務(wù)工作的統(tǒng)籌規(guī)劃、協(xié)調(diào)指導(dǎo)、督促檢查和經(jīng)驗(yàn)推廣;縣級(jí)以上人民政府民政部門(mén)負(fù)責(zé)志愿服務(wù)行政管理工作,其他有關(guān)部門(mén)按照各自職責(zé)負(fù)責(zé)與志愿服務(wù)有關(guān)的工作
網(wǎng)站頁(yè)面優(yōu)化:robots文件和meta robots:;希望網(wǎng)站遵循谷歌優(yōu)化指南以提升seo。
;使用robots.txt是谷歌優(yōu)化指南的一部分。
優(yōu)化robots.txt的方式取決于你網(wǎng)站上的內(nèi)容,使用robots.txt有各種各樣的方法。
最常用的robots.txt優(yōu)化方法robots.txt最常見(jiàn)的使用方法是屏蔽搜索引擎,不要抓取不希望索引的網(wǎng)站區(qū)域,提供xml站點(diǎn)地圖訪問(wèn)路徑,robots.txt放在網(wǎng)站根目錄,以下為例。
上述三種情況注意到,如果在robots.txt中亂寫(xiě)一些東西,對(duì)網(wǎng)站傷害很大。disallow:*這個(gè)指令就是網(wǎng)站屏蔽所有搜索引擎。如果網(wǎng)站使用該指令搜索引擎會(huì)從索引中刪除網(wǎng)站,所以一定要小心。
未來(lái)3年,這三類人才不僅好就業(yè),工資上漲快!:懂架構(gòu)、懂產(chǎn)品設(shè)計(jì)、懂用戶需求、懂市場(chǎng)開(kāi)發(fā)等ai 系統(tǒng)安全師 (年薪80-400萬(wàn))與ai系統(tǒng)安全師最接近的 是網(wǎng)絡(luò)安全師。
但是與此同時(shí),網(wǎng)頁(yè)篡改、計(jì)算機(jī)病毒、系統(tǒng)非法入侵、數(shù)據(jù)泄密、網(wǎng)站欺騙、服務(wù)癱瘓、漏洞非法利用等信息安全事件時(shí)有發(fā)生。
游戲設(shè)計(jì)師,又稱為游戲策劃。是游戲開(kāi)發(fā)公司中的一種職稱,主要職責(zé)是負(fù)責(zé)游戲項(xiàng)目的設(shè)計(jì)以及管理等策劃工作。2017年游戲界最瘋狂的兩款游戲:王者榮耀、吃雞游戲。
騰訊一個(gè)王者榮耀游戲就600億以上的利潤(rùn),人民群眾日益富裕的生活質(zhì)量背后,游戲成為未來(lái)人民群眾美好生活的基本需求。
這兩款游戲不同常規(guī)游戲的不同之處就是在于游戲場(chǎng)景設(shè)計(jì),全民參與、現(xiàn)實(shí)與虛擬場(chǎng)景的結(jié)合、智能游戲運(yùn)營(yíng)、操作門(mén)檻極低,這些都是ai在游戲用的應(yīng)用。作者聶潛:nq1919
10個(gè)助燃商業(yè)增長(zhǎng)的市場(chǎng)營(yíng)銷(xiāo)戰(zhàn)略:今天,社交媒體、搜索引擎優(yōu)化、博客和付費(fèi)點(diǎn)擊廣告都在爭(zhēng)奪大眾的注意力,我們很容易理解為什么大多數(shù)營(yíng)銷(xiāo)人感到壓力山大。事實(shí)上,讓你在商業(yè)上取得成功的東西也許未必能讓你更上一層樓。
不管你使用什么策略,如果你沒(méi)有一個(gè)有效的銷(xiāo)售漏斗并優(yōu)化你的購(gòu)買(mǎi)轉(zhuǎn)化,你的投入就只會(huì)是肉包子打狗,有去無(wú)回。什么是最優(yōu)營(yíng)銷(xiāo)策略?大部分的企業(yè)都面對(duì)一個(gè)難題。這是一個(gè)很難擺脫的窘境。
4理解搜索引擎優(yōu)化搜索引擎優(yōu)化是我非常熱衷的營(yíng)銷(xiāo)領(lǐng)域。但也是把很多人嚇壞的領(lǐng)域。沒(méi)錯(cuò),seo可以很讓人害怕,但它也同時(shí)具有強(qiáng)大的威力。
你必須關(guān)注通過(guò)追蹤像素(pixel)代碼監(jiān)測(cè)的轉(zhuǎn)化量和重新定位。如果你不知道如何在網(wǎng)站上安裝facebook pixel, 那么你現(xiàn)在必須開(kāi)始學(xué)習(xí)了。
pixel會(huì)跟蹤所有訪問(wèn)你網(wǎng)站的人,你可依此建立自定義受眾群體。
蘇寧有貨:為“輕創(chuàng)業(yè)”而來(lái):不管是羅永浩帶貨翻車(chē),還是辛巴燕窩事件,都證明大多數(shù)商家無(wú)法依靠自身力量把控產(chǎn)品質(zhì)量、運(yùn)營(yíng)售后服務(wù)。2月1日,蘇寧發(fā)布公告,宣布旗下電商服務(wù)平臺(tái)蘇寧有貨正式上線。
而蘇寧有貨以“成本最優(yōu)”為使命,通過(guò)整合蘇寧易購(gòu)自營(yíng)供應(yīng)鏈能力,連接廠商與用戶,以及支持一鍵建站、一件代發(fā)和一站齊備等功能,為小微商戶低成本創(chuàng)業(yè)提供路徑,降低了創(chuàng)業(yè)門(mén)檻。
但是蘇寧有貨入駐商戶已經(jīng)達(dá)到一萬(wàn)多家,完成了“冷啟動(dòng)”。預(yù)計(jì)到2021年底,將會(huì)達(dá)到10萬(wàn)家。目前,蘇寧有貨已開(kāi)放對(duì)外平臺(tái)和api接口。
據(jù)透露,在蘇寧有貨上線的同時(shí),蘇寧在近期一次內(nèi)部會(huì)議上,宣布旗下零售云將正式成立獨(dú)立子集團(tuán),涵蓋面向縣鎮(zhèn)的零售云電器店、面向社區(qū)的蘇寧小店,以及電商領(lǐng)域蘇寧有貨“三駕馬車(chē)”。
過(guò)去一年里,零售云累計(jì)為縣域市場(chǎng)帶來(lái)超2000萬(wàn)件優(yōu)質(zhì)商品,門(mén)店數(shù)量突破8000家,規(guī)模直接輻射上萬(wàn)鄉(xiāng)鎮(zhèn),雙線服務(wù)超2.5億用戶,協(xié)助超1800個(gè)品牌商實(shí)現(xiàn)渠道下沉。
開(kāi)源網(wǎng)站管理系統(tǒng):林業(yè)投資評(píng)估之智慧教室無(wú)紙化同屏方案是否適用rtmp?智慧教室無(wú)紙化方案技術(shù)背景
智慧教室無(wú)紙化方案是一種基于現(xiàn)代信息技術(shù),旨在通過(guò)數(shù)字化手段實(shí)現(xiàn)教學(xué)過(guò)程的無(wú)紙化、智能化和高效化的解決方案。該方案以學(xué)生為中心,強(qiáng)調(diào)互動(dòng)化的數(shù)字教學(xué)服務(wù),旨在提升教學(xué)質(zhì)量和學(xué)習(xí)效率,同時(shí)減少對(duì)傳統(tǒng)紙張的依賴,實(shí)現(xiàn)綠色環(huán)保。以下是對(duì)智慧教室無(wú)紙化方案的詳細(xì)闡述:
一、方案概述
智慧教室無(wú)紙化方案通過(guò)整合物聯(lián)網(wǎng)、大數(shù)據(jù)、人工智能等先進(jìn)技術(shù),構(gòu)建了一個(gè)集智能管理、智慧教學(xué)、環(huán)境便捷調(diào)節(jié)及資源制作于一體的新型現(xiàn)代化智慧教室。該方案不僅實(shí)現(xiàn)了教學(xué)資源的數(shù)字化、網(wǎng)絡(luò)化,還通過(guò)智能設(shè)備和平臺(tái)實(shí)現(xiàn)了教學(xué)過(guò)程的自動(dòng)化、智能化,為師生提供了更加便捷、高效、互動(dòng)的學(xué)習(xí)和教學(xué)環(huán)境。
二、主要特點(diǎn)
數(shù)字化教學(xué)資源:智慧教室無(wú)紙化方案提供了豐富海量的數(shù)字化教學(xué)資源,包括電子教材、多媒體課件、在線題庫(kù)等,師生可以隨時(shí)隨地進(jìn)行訪問(wèn)和學(xué)習(xí),打破了傳統(tǒng)紙質(zhì)教材的束縛。
在線學(xué)習(xí)互動(dòng):通過(guò)智慧教室平臺(tái),學(xué)生可以隨時(shí)收聽(tīng)老師的講課內(nèi)容,參與在線討論、提問(wèn)和答疑,實(shí)現(xiàn)了師生之間的即時(shí)互動(dòng)。同時(shí),學(xué)生還可以根據(jù)自己的學(xué)習(xí)進(jìn)度和需求進(jìn)行個(gè)性化學(xué)習(xí),提高了學(xué)習(xí)的針對(duì)性和自主性。
智能管理:智慧教室無(wú)紙化方案支持對(duì)教室內(nèi)的多種終端設(shè)備進(jìn)行無(wú)縫連接和智能化管理,如智能白板、互動(dòng)電子白板、環(huán)境監(jiān)測(cè)設(shè)備等。這些設(shè)備能夠自動(dòng)采集和分析數(shù)據(jù),為教學(xué)和管理提供有力支持。
環(huán)境便捷調(diào)節(jié):智慧教室通過(guò)溫度、濕度和光照感應(yīng)器等設(shè)備,實(shí)現(xiàn)了對(duì)教室內(nèi)環(huán)境的自動(dòng)調(diào)節(jié),為師生提供了更加舒適的學(xué)習(xí)和教學(xué)環(huán)境。
三、實(shí)施步驟
需求分析:根據(jù)學(xué)校的實(shí)際情況和需求,對(duì)智慧教室無(wú)紙化方案進(jìn)行需求分析,明確建設(shè)目標(biāo)和功能需求。
方案設(shè)計(jì):根據(jù)需求分析結(jié)果,設(shè)計(jì)智慧教室無(wú)紙化方案,包括系統(tǒng)架構(gòu)、設(shè)備選型、平臺(tái)開(kāi)發(fā)等方面。
設(shè)備采購(gòu)與安裝:按照方案要求采購(gòu)相關(guān)設(shè)備,并進(jìn)行安裝調(diào)試,確保設(shè)備能夠正常運(yùn)行。
平臺(tái)開(kāi)發(fā)與部署:開(kāi)發(fā)智慧教室平臺(tái),并進(jìn)行部署和測(cè)試,確保平臺(tái)能夠穩(wěn)定運(yùn)行并滿足教學(xué)需求。
培訓(xùn)與推廣:對(duì)教師和學(xué)生進(jìn)行培訓(xùn)和推廣,幫助他們掌握智慧教室無(wú)紙化方案的使用方法和技巧。
四、應(yīng)用效果
智慧教室無(wú)紙化方案的實(shí)施可以帶來(lái)以下應(yīng)用效果:
提升教學(xué)質(zhì)量:通過(guò)數(shù)字化教學(xué)資源和在線學(xué)習(xí)互動(dòng)功能,教師可以更加生動(dòng)、直觀地傳授知識(shí),激發(fā)學(xué)生的學(xué)習(xí)興趣和積極性;學(xué)生可以更加自主、靈活地進(jìn)行學(xué)習(xí),提高學(xué)習(xí)效果和質(zhì)量。
提高教學(xué)效率:智慧教室無(wú)紙化方案可以大大簡(jiǎn)化教學(xué)流程和管理流程,減少教師和管理人員的工作量;同時(shí),通過(guò)智能設(shè)備和平臺(tái)的支持,可以實(shí)現(xiàn)教學(xué)過(guò)程的自動(dòng)化和智能化,提高教學(xué)效率。
實(shí)現(xiàn)綠色環(huán)保:通過(guò)減少對(duì)傳統(tǒng)紙張的依賴和使用數(shù)字化教學(xué)資源等方式,智慧教室無(wú)紙化方案有助于實(shí)現(xiàn)綠色環(huán)保和可持續(xù)發(fā)展。
智慧教室rtmp方案探究
智慧教室rtmp在智慧教室場(chǎng)景下的應(yīng)用,以實(shí)現(xiàn)實(shí)時(shí)音視頻流傳輸、屏幕共享、互動(dòng)教學(xué)等功能。以下是一個(gè)基于rtmp技術(shù)的智慧教室技術(shù)方案概述:
技術(shù)方案架構(gòu)
1. 組網(wǎng)與服務(wù)器部署
組網(wǎng)方式:建議采用無(wú)線組網(wǎng)方式,并配置高性能的ap模塊以支持大并發(fā)流量。推送端(如教師端設(shè)備)到ap的連接最好是有線網(wǎng)絡(luò),以確保穩(wěn)定性。
服務(wù)器部署:選擇srs或nginx作為rtmp服務(wù)器,可以根據(jù)實(shí)際情況與windows平臺(tái)的教師機(jī)部署在同一臺(tái)機(jī)器上,或部署在獨(dú)立的服務(wù)器上。
2. 教師端設(shè)備配置
如果教師有移動(dòng)pad或其他android設(shè)備,可以直接將音視頻流推送到rtmp服務(wù)器,實(shí)現(xiàn)實(shí)時(shí)授課。
對(duì)于高分屏設(shè)備,建議適當(dāng)縮放視頻分辨率以減輕編碼和上行壓力,如將寬高縮放至2/3,并保持等比例縮放,縮放寬高建議做好字節(jié)對(duì)齊。
3. 學(xué)生端設(shè)備配置
學(xué)生端設(shè)備可以通過(guò)rtmp客戶端接收來(lái)自服務(wù)器的音視頻流,進(jìn)行實(shí)時(shí)觀看和學(xué)習(xí)。
如果需要,學(xué)生端也可以作為示范案例,將屏幕數(shù)據(jù)共享給其他同學(xué),只需請(qǐng)求同屏,數(shù)據(jù)反推到rtmp服務(wù)器,其他學(xué)生即可查看。
4. 互動(dòng)功能實(shí)現(xiàn)
通過(guò)rtmp協(xié)議,可以實(shí)現(xiàn)教師與學(xué)生的實(shí)時(shí)互動(dòng),如問(wèn)答、投票等。
如果需要更進(jìn)一步的監(jiān)控功能,如教師端監(jiān)控學(xué)生端的屏幕情況,可以通過(guò)學(xué)生端直接推送rtmp流或啟動(dòng)內(nèi)置rtsp服務(wù)的方式實(shí)現(xiàn)。
關(guān)鍵技術(shù)點(diǎn)
1. 編碼與轉(zhuǎn)碼
使用適當(dāng)?shù)囊曨l編碼器(如h.264)和音頻編碼器(如aac)對(duì)音視頻流進(jìn)行編碼,以確保高質(zhì)量的傳輸效果。
如果需要適應(yīng)不同帶寬或設(shè)備要求,可以使用ffmpeg等工具進(jìn)行流的轉(zhuǎn)碼操作。
2. 橫豎屏適配
在android設(shè)備上,橫豎屏切換時(shí)需要考慮屏幕寬高的變化,確保推拉流兩端可以自動(dòng)適配。
編碼器需要重啟以適應(yīng)新的分辨率設(shè)置,拉流端也需要能夠自動(dòng)播放適應(yīng)變化后的視頻流。
3. 補(bǔ)幀策略
當(dāng)屏幕靜止不動(dòng)時(shí),為了避免播放端因幀間距過(guò)大而長(zhǎng)時(shí)間收不到數(shù)據(jù),可以采用補(bǔ)幀策略。
保存最后一幀數(shù)據(jù),并設(shè)定一定的補(bǔ)幀間隔,以確保數(shù)據(jù)的連續(xù)性和流暢性。
4. 網(wǎng)絡(luò)穩(wěn)定性與重連機(jī)制
在網(wǎng)絡(luò)抖動(dòng)或其他網(wǎng)絡(luò)異常情況下,需要有良好的重連機(jī)制和狀態(tài)回饋機(jī)制以確保傳輸?shù)姆€(wěn)定性。
通過(guò)設(shè)置心跳包、超時(shí)重連等策略來(lái)提高系統(tǒng)的健壯性和用戶體驗(yàn)。
智慧教室方案選型
本文以大牛直播sdk的android的smartservicepublisherv2的同屏demo為例,android采集計(jì)時(shí)器,編碼打包分別啟動(dòng)rtmp推送和輕量級(jí)rtsp服務(wù),windows過(guò)來(lái)分別拉取rtmp和rtsp的流,整體延遲毫秒級(jí):
啟動(dòng)app后,先選擇需要采集的分辨率(如果選原始分辨率,系統(tǒng)不做縮放),然后選擇“啟動(dòng)媒體投影”,并分別啟動(dòng)音頻播放采集、采集麥克風(fēng)。如果音頻播放采集和采集麥克風(fēng)都打開(kāi),可以通過(guò)右側(cè)下拉框,推送過(guò)程中,音頻播放采集和麥克風(fēng)采集實(shí)時(shí)切換。需要注意的是,android采集音頻播放的audio,音頻播放采集是依賴屏幕投影的,屏幕投影關(guān)閉后,音頻播放也就采不到了。
編碼的話,考慮到屏幕分辨率一般不會(huì)太低,我們可以縮放后再推送,默認(rèn)我們開(kāi)啟了原始分辨率、標(biāo)準(zhǔn)分辨率、低分辨率選項(xiàng)設(shè)置。一般建議標(biāo)準(zhǔn)分辨率即可。如果對(duì)畫(huà)質(zhì)和分辨率要求比較高,可以選擇原始分辨率。設(shè)備支持硬編碼,優(yōu)先選擇h.264硬編,如果是h.265硬編,需要rtmp服務(wù)器支持?jǐn)U展h.265(或enhanced rtmp)。都選擇好后,設(shè)置rtmp推送的url,點(diǎn)開(kāi)始rtmp推送按鈕即可。
下面從代碼邏輯實(shí)現(xiàn)角度,介紹下同屏的具體流程:
啟動(dòng)媒體服務(wù),進(jìn)入系統(tǒng)后,我們會(huì)自動(dòng)啟動(dòng)媒體服務(wù),對(duì)應(yīng)的實(shí)現(xiàn)邏輯如下:
代碼語(yǔ)言:java
復(fù)制
/*
* mainactivity.java
* created by daniusdk.com on 2017/04/19.
* wechat: xinsheng120
*/
private void start_media_service() {
intent intent = new intent(getapplicationcontext(), streammediademoservice.class);
if (build.version.sdk_int >= 26) {
log.i(tag, "startforegroundservice");
startforegroundservice(intent);
} else
startservice(intent);
bindservice(intent, service_connection_, context.bind_auto_create);
button_stop_media_service_.settext("停止媒體服務(wù)");
}
private void stop_media_service() {
if (media_engine_callback_ != null)
media_engine_callback_.reset(null);
if (media_engine_ != null) {
media_engine_.unregister_callback(media_engine_callback_);
media_engine_ = null;
}
media_engine_callback_ = null;
if (media_binder_ != null) {
media_binder_ = null;
unbindservice(service_connection_);
}
intent intent = new intent(getapplicationcontext(), streammediademoservice.class);
stopservice(intent);
button_stop_media_service_.settext("啟動(dòng)媒體服務(wù)");
}
需要注意的是,android 6.0及以上版本,動(dòng)態(tài)獲取audio權(quán)限:
代碼語(yǔ)言:java
復(fù)制
/*
* mainactivity.java
* created by daniusdk.com on 2017/04/19.
* wechat: xinsheng120
*/
private boolean check_record_audio_permission() {
//6.0及以上版本,動(dòng)態(tài)獲取audio權(quán)限
if (packagemanager.permission_granted == checkpermission(android.manifest.permission.record_audio, process.mypid(), process.myuid()))
return true;
return false;
}
private void request_audio_permission() {
if (build.version.sdk_int < 23)
return;
log.i(tag, "requestpermissions record_audio");
activitycompat.requestpermissions(this, new string[] {android.manifest.permission.record_audio}, request_audio_code);
}
@override
public void onrequestpermissionsresult(int requestcode, string[] permissions, int[] grantresults) {
switch(requestcode){
case request_audio_code:
if (grantresults != null && grantresults.length > 0 && packagemanager.permission_granted == grantresults[0]) {
log.i(tag, "record_audio permission has been granted");
}else {
toast.maketext(this, "請(qǐng)開(kāi)啟錄音權(quán)限!", toast.length_short).show();
}
break;
}
}
啟動(dòng)、停止媒體投影:
代碼語(yǔ)言:java
復(fù)制
/*
* mainactivity.java
* created by daniusdk.com on 2017/04/19.
* wechat: xinsheng120
*/
private class buttonstartmediaprojectionlistener implements onclicklistener {
public void onclick(view v) {
if (null == media_engine_)
return;
if (media_engine_.is_video_capture_running()) {
media_engine_.stop_audio_playback_capture();
media_engine_.stop_video_capture();
resolution_selector_.setenabled(true);
button_capture_audio_playback_.settext("采集音頻播放");
button_start_media_projection_.settext("啟動(dòng)媒體投影");
return;
}
intent capture_intent;
capture_intent = media_projection_manager_.createscreencaptureintent();
startactivityforresult(capture_intent, request_media_projection);
log.i(tag, "startactivityforresult request media projection");
}
}
啟動(dòng)媒體投影后,選擇“采集音頻播放”,如果需要采集麥克風(fēng),可以點(diǎn)擊“采集麥克風(fēng)”:
代碼語(yǔ)言:java
復(fù)制
/*
* mainactivity.java
* created by daniusdk.com on 2017/04/19.
* wechat: xinsheng120
*/
private class buttoncaptureaudioplaybacklistener implements onclicklistener {
public void onclick(view v) {
if (null == media_engine_)
return;
if (media_engine_.is_audio_playback_capture_running()) {
media_engine_.stop_audio_playback_capture();
button_capture_audio_playback_.settext("采集音頻播放");
return;
}
if (!media_engine_.start_audio_playback_capture(44100, 1))
log.e(tag, "start_audio_playback_capture failed");
else
button_capture_audio_playback_.settext("停止音頻播放采集");
}
}
private class buttonstartaudiorecordlistener implements onclicklistener {
public void onclick(view v) {
if (null == media_engine_)
return;
if (media_engine_.is_audio_record_running()) {
media_engine_.stop_audio_record();
button_start_audio_record_.settext("采集麥克風(fēng)");
return;
}
if (!media_engine_.start_audio_record(44100, 1))
log.e(tag, "start_audio_record failed");
else
button_start_audio_record_.settext("停止麥克風(fēng)");
}
}
啟動(dòng)、停止rtmp推送:
代碼語(yǔ)言:java
復(fù)制
/*
* mainactivity.java
* created by daniusdk.com on 2017/04/19.
* wechat: xinsheng120
*/
private class buttonrtmppublisherlistener implements onclicklistener {
@override
public void onclick(view v) {
if (null == media_engine_)
return;
if (media_engine_.is_rtmp_stream_running()) {
media_engine_.stop_rtmp_stream();
button_rtmp_publisher_.settext("開(kāi)始rtmp推送");
text_view_rtmp_url_.settext("rtmp url: ");
log.i(tag, "stop rtmp stream");
return;
}
if (!media_engine_.is_video_capture_running())
return;
string rtmp_url;
if (input_rtmp_url_ != null && input_rtmp_url_.length() > 1) {
rtmp_url = input_rtmp_url_;
log.i(tag, "start, input rtmp url:" + rtmp_url);
} else {
rtmp_url = baseurl + string.valueof((int) (system.currenttimemillis() % 1000000));
log.i(tag, "start, generate random url:" + rtmp_url);
}
media_engine_.set_fps(fps_);
media_engine_.set_gop(gop_);
media_engine_.set_video_encoder_type(video_encoder_type);
if (!media_engine_.start_rtmp_stream(rtmp_url))
return;
button_rtmp_publisher_.settext("停止rtmp推送");
text_view_rtmp_url_.settext("rtmp url:" + rtmp_url);
log.i(tag, "rtmp url:" + rtmp_url);
}
}
可以看到,上述操作,都是在mainactivity.java調(diào)用的,如果是需要做demo版本集成,只需要關(guān)注mainactivity.java的業(yè)務(wù)邏輯即可,為了便于開(kāi)發(fā)者對(duì)接,我們做了接口的二次封裝,除了常規(guī)的rtmp推送、輕量級(jí)rtsp服務(wù)設(shè)計(jì)外,如果需要錄像,只要在mainactivity.java調(diào)用這里的接口邏輯即可,非常方便:
代碼語(yǔ)言:java
復(fù)制
/*
* ntstreammediaengine.java
* created by daniusdk.com on 2017/04/19.
* wechat: xinsheng120
*/
package com.daniulive.smartpublisher;
public interface ntstreammediaengine {
void register_callback(callback callback);
void unregister_callback(callback callback);
void set_resolution_level(int level);
int get_resolution_level();
/*
* 啟動(dòng)媒體投影
*/
boolean start_video_capture(int token_code, android.content.intent token_data);
boolean is_video_capture_running();
void stop_video_capture();
/*
* 啟動(dòng)麥克風(fēng)
*/
boolean start_audio_record(int sample_rate, int channels);
boolean is_audio_record_running();
void stop_audio_record();
/*
* android 10及以上支持, android10以下設(shè)備調(diào)用直接返回false
* 需要有record_audio權(quán)限
* 要開(kāi)啟媒體投影
*/
boolean start_audio_playback_capture(int sample_rate, int channels);
boolean is_audio_playback_capture_running();
void stop_audio_playback_capture();
/*
* 輸出的音頻類型
* 0: 不輸出音頻
* 1: 輸出麥克風(fēng)
* 2: 輸出audio playback(android 10及以上支持)
*/
boolean set_audio_output_type(int type);
int get_audio_output_type();
void set_fps(int fps);
void set_gop(int gop);
boolean set_video_encoder_type(int video_encoder_type);
int get_video_encoder_type();
/*
* 推送rtmp
*/
boolean start_rtmp_stream(string url);
boolean is_rtmp_stream_running();
string get_rtmp_stream_url();
void stop_rtmp_stream();
/*
* 啟動(dòng)rtsp server, 需要設(shè)置端口,用戶名和密碼可選
*/
boolean start_rtsp_server(int port, string user_name, string password);
boolean is_rtsp_server_running();
void stop_rtsp_server();
/*
* 發(fā)布rtsp流
*/
boolean start_rtsp_stream(string stream_name);
boolean is_rtsp_stream_running();
string get_rtsp_stream_url();
void stop_rtsp_stream();
/*
* 啟動(dòng)本地錄像
*/
boolean start_stream_record(string record_directory, int file_max_size);
boolean is_stream_recording();
void stop_stream_record();
boolean is_stream_running();
interface callback {
void on_nt_video_capture_stop();
void on_nt_rtsp_stream_url(string url);
}
}
如果對(duì)音視頻這塊相對(duì)了解的開(kāi)發(fā)者,可以繼續(xù)到ntstreammediaprojectionengineimpl.java文件,查看或修改相關(guān)的技術(shù)實(shí)現(xiàn):
代碼語(yǔ)言:java
復(fù)制
/*
* ntstreammediaprojectionengineimpl.java
* created by daniusdk.com on 2017/04/19.
* wechat: xinsheng120
*/
package com.daniulive.smartpublisher;
import android.app.activity;
import android.app.application;
import android.app.service;
import android.content.context;
import android.content.intent;
import android.content.pm.packagemanager;
import android.graphics.point;
import android.graphics.rect;
import android.media.image;
import android.media.projection.mediaprojection;
import android.media.projection.mediaprojectionmanager;
import android.os.build;
import android.os.handler;
import android.os.handlerthread;
import android.os.process;
import android.util.log;
import android.util.size;
import android.view.surface;
import android.view.windowmanager;
import android.view.windowmetrics;
import com.eventhandle.ntsmarteventcallbackv2;
import com.eventhandle.ntsmarteventid;
import com.voiceengine.ntaudiorecordv2;
import com.voiceengine.ntaudiorecordv2callback;
import com.videoengine.ntmediaprojectioncapture;
import com.voiceengine.ntaudioplaybackcapture;
import java.lang.ref.weakreference;
import java.nio.bytebuffer;
import java.util.concurrent.copyonwritearraylist;
import java.util.concurrent.atomic.atomicreference;
public class ntstreammediaprojectionengineimpl implements autocloseable, ntstreammediaengine,
ntvirtualdisplaysurfacesinker.callback, ntmediaprojectioncapture.callback {
private static final string tag = "ntlogprojectionengine";
private static final size default_size = new size(1920, 1080);
public static final int resolution_low = 0;
public static final int resolution_medium = 1;
public static final int resolution_high = 2;
private final application application_;
private final long image_thread_id_;
private final long running_thread_id_;
private final handler image_handler_;
private final handler running_handler_;
private final windowmanager window_manager_;
private final mediaprojectionmanager projection_manager_;
private int screen_density_dpi_ = android.util.displaymetrics.density_default;
private final smartpublisherjniv2 lib_publisher_;
private final libpublisherwrapper.rtspserver rtsp_server_;
private final libpublisherwrapper stream_publisher_;
private final copyonwritearraylist<ntstreammediaengine.callback> callbacks_ = new copyonwritearraylist<>();
private final atomicreference<videosinkercapturepair> video_capture_pair_ = new atomicreference<>();
private final audiorecordcallbackimpl audio_record_callback_;
private final audioplaybackcapturecallbackimpl audio_playback_capture_callback_;
private final atomicreference<ntaudiorecordv2> audio_record_ = new atomicreference<>();
private final atomicreference<ntaudioplaybackcapture> audio_playback_capture_ = new atomicreference<>();
...
}
以android平臺(tái)rtmp推送模塊為例,我們主要實(shí)現(xiàn)了如下功能:
音頻編碼:aac/speex;
視頻編碼:h.264、h.265;
推流協(xié)議:rtmp;
[音視頻]支持純音頻/純視頻/音視頻推送;
[攝像頭]支持采集過(guò)程中,前后攝像頭實(shí)時(shí)切換;
支持幀率、關(guān)鍵幀間隔(gop)、碼率(bit-rate)設(shè)置;
支持rtmp推送 live|record模式設(shè)置;
支持前置攝像頭鏡像設(shè)置;
支持軟編碼、特定機(jī)型硬編碼;
支持橫屏、豎屏推送;
支持android屏幕采集推送;
支持自建標(biāo)準(zhǔn)rtmp服務(wù)器或cdn;
支持?jǐn)嗑W(wǎng)自動(dòng)重連、網(wǎng)絡(luò)狀態(tài)回調(diào);
支持實(shí)時(shí)動(dòng)態(tài)水印;
支持實(shí)時(shí)快照;
支持降噪處理、自動(dòng)增益控制;
支持外部編碼前音視頻數(shù)據(jù)對(duì)接;
支持外部編碼后音視頻數(shù)據(jù)對(duì)接;
支持rtmp擴(kuò)展h.265(需設(shè)備支持h.265特定機(jī)型硬編碼)和enhanced rtmp;
支持實(shí)時(shí)音量調(diào)節(jié);
支持?jǐn)U展錄像模塊;
支持unity接口;
支持h.264擴(kuò)展sei發(fā)送模塊;
支持android 5.1及以上版本。
總結(jié)
智慧教室無(wú)紙化方案是一種具有廣泛應(yīng)用前景和發(fā)展?jié)摿Φ慕虒W(xué)解決方案。它不僅能夠提升教學(xué)質(zhì)量和學(xué)習(xí)效率,還能夠?qū)崿F(xiàn)綠色環(huán)保和可持續(xù)發(fā)展目標(biāo)。隨著信息技術(shù)的不斷發(fā)展和普及,智慧教室無(wú)紙化方案將會(huì)在未來(lái)的教育領(lǐng)域中發(fā)揮更加重要的作用。
智慧教室rtmp技術(shù)方案通過(guò)利用rtmp協(xié)議的實(shí)時(shí)性和低延遲特性,結(jié)合適當(dāng)?shù)慕M網(wǎng)、服務(wù)器部署、編碼轉(zhuǎn)碼、橫豎屏適配、補(bǔ)幀策略以及網(wǎng)絡(luò)穩(wěn)定性保障措施,為智慧教室場(chǎng)景下的實(shí)時(shí)授課、屏幕共享、互動(dòng)教學(xué)等功能提供了強(qiáng)有力的技術(shù)支持。以上拋磚引玉,感興趣的開(kāi)發(fā)者,可以單獨(dú)跟我溝通探討。
騰訊安全x2019知交會(huì)丨區(qū)塊鏈在知識(shí)產(chǎn)權(quán)保護(hù)與監(jiān)管的新應(yīng)用:11月12日-14日,在由廣東省市場(chǎng)監(jiān)督管理局(省知識(shí)產(chǎn)權(quán)局)、廣州市人民政府、中國(guó)香港特區(qū)政府知識(shí)產(chǎn)權(quán)署、中國(guó)澳門(mén)特區(qū)政府經(jīng)濟(jì)局共同舉辦的2019粵港澳大灣區(qū)知識(shí)產(chǎn)權(quán)交易博覽會(huì)(簡(jiǎn)稱知交會(huì))上,騰訊安全攜基于區(qū)塊鏈技術(shù)的知識(shí)產(chǎn)權(quán)保護(hù)解決方案亮相
,助力市場(chǎng)監(jiān)管部門(mén)打擊網(wǎng)絡(luò)侵權(quán)盜版,護(hù)航以粵港澳大灣區(qū)為核心的創(chuàng)新企業(yè)發(fā)展,推動(dòng)構(gòu)建“依托粵港澳大灣區(qū),立足深圳,服務(wù)全國(guó),輻射全球”的知識(shí)產(chǎn)權(quán)保護(hù)樣板工程。?
(2019年粵港澳大灣區(qū)知交會(huì)騰訊安全展位) 基于區(qū)塊鏈技術(shù)的知識(shí)產(chǎn)權(quán)保護(hù)解決方案自2015年起,騰訊便開(kāi)始關(guān)注區(qū)塊鏈技術(shù)并進(jìn)行自主研發(fā),在電子發(fā)票、供應(yīng)鏈金融、政務(wù)服務(wù)等諸多領(lǐng)域都沉淀了成熟的解決方案
騰訊安全在公安反詐騙領(lǐng)域有20多種詐騙電話識(shí)別模型、偽基站識(shí)別模型并被廣泛應(yīng)用;在市場(chǎng)監(jiān)管領(lǐng)域擁有電商風(fēng)險(xiǎn)監(jiān)測(cè)14個(gè)模型、傳銷(xiāo)風(fēng)險(xiǎn)模型、網(wǎng)絡(luò)侵權(quán)模型10個(gè);金融監(jiān)管領(lǐng)域“7+4”金融業(yè)態(tài)風(fēng)險(xiǎn)識(shí)別模型以及互聯(lián)網(wǎng)
發(fā)現(xiàn)侵權(quán)線索,助力大數(shù)據(jù)“智慧監(jiān)管”。騰訊安全聯(lián)合深圳市市場(chǎng)稽查局建設(shè)了互聯(lián)網(wǎng)食藥大數(shù)據(jù)監(jiān)管指數(shù)平臺(tái),為食藥行業(yè)提供打假案件追查輔助、虛假銷(xiāo)售和網(wǎng)站攔截等技術(shù)支持。
bc混搭賣(mài)出天價(jià)的linkedin,對(duì)中國(guó)的金蝶云之家們有什么啟示?:近年來(lái),中國(guó)消費(fèi)互聯(lián)網(wǎng)市場(chǎng)進(jìn)入紅海,互聯(lián)網(wǎng)+則帶動(dòng)企業(yè)信息化的訴求日趨強(qiáng)烈,中國(guó)企業(yè)級(jí)市場(chǎng)正在呈現(xiàn)井噴之勢(shì),備受互聯(lián)網(wǎng)巨頭和明星資本力量的追捧。
linkedin創(chuàng)始人因?yàn)椤叭穗H關(guān)系管理將在商業(yè)社會(huì)發(fā)揮巨大作用,而互聯(lián)網(wǎng)能為其提供最好的工具。”這個(gè)初心走到一起,創(chuàng)辦了linkedin。linkedin現(xiàn)在的標(biāo)簽是,全球最大的職場(chǎng)社交網(wǎng)站。
然而,linked并不是一個(gè)招聘求職網(wǎng)站——如果定位于此,市值不可能達(dá)到百億美金。linkedin求職的基礎(chǔ)是商務(wù)社交關(guān)系。
它幫助企業(yè)解決招聘需求,世界500強(qiáng)的企業(yè)均是其客戶,人力資源經(jīng)理、獵頭,均十分依賴linkedin獲取簡(jiǎn)歷,linkedin則提供類似于簡(jiǎn)歷篩選的高級(jí)服務(wù)盈利,與常見(jiàn)的在線招聘網(wǎng)站并無(wú)太大不同,這部分被稱為
正是因?yàn)閺?c的簡(jiǎn)歷和關(guān)系管理平臺(tái),轉(zhuǎn)型到2b的商業(yè)關(guān)系服務(wù)平臺(tái),讓linkedin找到了盈利模式,并確立了其遠(yuǎn)遠(yuǎn)大過(guò)于招聘網(wǎng)站的價(jià)值,形成“社交+招聘+媒體”的三位一體。
5個(gè)emoji表情包,讓你秒懂哈希函數(shù)!:事實(shí)上,如果你理解哈希函數(shù),那么理解區(qū)塊鏈的挖礦模式和不可篡改性便是一件輕而易舉的事情! 哈希函數(shù)的應(yīng)用很廣泛,比如每當(dāng)你在網(wǎng)站上輸入密碼時(shí),都會(huì)用到哈希函數(shù)。
每當(dāng)你在網(wǎng)站輸入密碼時(shí),網(wǎng)站存儲(chǔ)的不是你的密碼,而是你密碼的 “哈希值”(即:密碼經(jīng)過(guò)emoji工廠處理之后輸出的3個(gè) emoji)。
這樣一來(lái),如果出現(xiàn)數(shù)據(jù)泄露或者有人竊取到該網(wǎng)站存儲(chǔ)的個(gè)人數(shù)據(jù),那么竊取者得到的只是一堆哈希值,而非實(shí)際的密碼!由于工廠是單向的,如果竊取者想根據(jù)哈希值逆向計(jì)算出實(shí)際的密碼,唯一的方法就是試錯(cuò)。
雖然這依然存在數(shù)據(jù)泄露的風(fēng)險(xiǎn),但并不影響你重新登錄網(wǎng)站,你知道自己的密碼,直接輸入就好。這時(shí),你輸入的密碼會(huì)立即由哈希工廠轉(zhuǎn)化成一個(gè)哈希值。
網(wǎng)站可以立刻檢查這個(gè)哈希值是否與你的賬戶名所對(duì)應(yīng)的哈希值匹配,因?yàn)楣9S總是返回相同的輸出(確定性),然后網(wǎng)站就會(huì)允許你登陸。
it小喇叭 助力傳統(tǒng)企業(yè)向互聯(lián)網(wǎng)轉(zhuǎn)型的分析與實(shí)施:就傳統(tǒng)中小企業(yè)向互聯(lián)網(wǎng)轉(zhuǎn)型的事,it小喇叭來(lái)淺談幾點(diǎn):一、傳統(tǒng)的中小企業(yè)為什么要向互聯(lián)網(wǎng)轉(zhuǎn)型?
2) 公司對(duì)外的宣傳平臺(tái):????????如果一個(gè)用戶(投資者、異業(yè)合作伙位、求職者、消費(fèi)者等)要了解一個(gè)企業(yè),應(yīng)該思考他們?nèi)チ私獾钠脚_(tái)是什么,這就是一家企業(yè)需要維護(hù)的宣傳平臺(tái),公司的網(wǎng)站、企業(yè)微信公眾號(hào)
4) 公司的發(fā)展規(guī)劃:????????一個(gè)公司沒(méi)有規(guī)劃,發(fā)展是盲目的,沒(méi)有目的性的,對(duì)于公司的規(guī)劃,一定有一個(gè)長(zhǎng)期的、短期性的,它們是指導(dǎo)一個(gè)企業(yè)發(fā)展的方向與目標(biāo),公司全員一起努力奮斗的旗幟。
大部分的中小企業(yè)老板,以為互聯(lián)網(wǎng)轉(zhuǎn)型,就是去做一個(gè)網(wǎng)站、app、微信公眾號(hào)或者小程序,或者通過(guò)互聯(lián)網(wǎng)方式宣傳自己的產(chǎn)品就ok了。????????
it小喇叭,助力傳統(tǒng)企業(yè)互聯(lián)網(wǎng)化轉(zhuǎn)型的分析與實(shí)施。it小喇叭,成立于2015年6月,平臺(tái)以媒體資源為支撐(it小喇叭-關(guān)注于移動(dòng)互聯(lián)網(wǎng)創(chuàng)新創(chuàng)業(yè)的科技媒體,助力企業(yè)的品牌宣傳。)
java初學(xué)人員的注意事項(xiàng):比如:數(shù)據(jù)庫(kù)連接、接口定義、輸入輸出、網(wǎng)絡(luò)編程j2ee(企業(yè)版)包含 j2se 中的類,并且還包含用于開(kāi)發(fā)企業(yè)級(jí)應(yīng)用的類。
比如:ejb、servlet、jsp、xml、事務(wù)控制j2me(微縮版)包含 j2se 中一部分類,用于消費(fèi)類電子產(chǎn)品的系統(tǒng)開(kāi)發(fā)。
針對(duì)企業(yè)網(wǎng)應(yīng)用的j2ee(java 2 enterprise edition)、針對(duì)普通pc應(yīng)用的j2se(java 2 standard edition)和 針對(duì)嵌入式設(shè)備及消費(fèi)類電器的j2me(java
科學(xué)與《侏羅紀(jì)公園》pk恐龍十大真相!:來(lái)源:中國(guó)生物技術(shù)信息網(wǎng)網(wǎng)站:http:www.biotech.org.cn?《侏羅紀(jì)公園》的新作上映,而這也使恐龍重回大家的視線,它的十大科學(xué)真相,電影搞錯(cuò)了許多啊。
博爾特的速度能夠超越霸王龍科學(xué)家指出,計(jì)算機(jī)模擬數(shù)據(jù)顯示,霸王龍最高奔跑速度大約29公里小時(shí),顯然這一速度并不能追趕汽車(chē),但能追趕到多數(shù)人。
最早的恐龍骨骼化石發(fā)現(xiàn)于1677年最早發(fā)現(xiàn)的恐龍骨骼化石是斑龍,是1677年在英國(guó)牛津郡采石場(chǎng)挖掘的。
人類的生存時(shí)代比劍龍更接近霸王龍 盡管劍龍和霸王龍都是恐龍世界的成員,但是它們從未生活在同一時(shí)期,劍龍生活在侏羅紀(jì)時(shí)期,大約在8000萬(wàn)年前滅絕,霸王龍于8500萬(wàn)年前出現(xiàn)。
旅居美國(guó)多年,現(xiàn)在定居于大華府地區(qū)。大數(shù)據(jù)格言:big data is better data
@2CaSn8NiSM ?- @政務(wù)OA軟件 @oa協(xié)同辦公的主要功能 @政務(wù)oa解決方案
轉(zhuǎn)載請(qǐng)注明出處,本站網(wǎng)址:
http://www.zwhvip.com/news/2060.html