倒計時結(jié)束后,把timer重新賦值6就行了
微信開發(fā)團隊:呵呵噠,小樣,敢在我面前耍小聰明
html使用相對路徑
具體什么樣的代碼啊...
找到了一個好用的免費開源JS庫——streamedian
當當當~上鏈接:https://streamedian.com
介紹中講到,Multifunctional HTML5 RTSP streaming video player over WebSocket
就是說,利用websocket實現(xiàn)多功能的H5的rtsp視頻流播放器
這里是使用文檔:https://streamedian.com/docs/
對于對websocket、linux、服務器、甚至英文一知半解(一竅不通)并看了文檔也不理解的同學,請繼續(xù)看手把手中文教程:
首先我們理解一下個中原理:
目標:在你的瀏覽器(browser)上播放rtsp視頻流
問題:然而,H5的標簽<video>不支持這樣的播放
方案:這里利用我們的streamedian在你的服務端開啟一個websocket代理(proxy),負責接收rtsp流,并轉(zhuǎn)播給你的瀏覽器客戶端,streamedian在客戶端利用中間件(Media Sources Extensions)將經(jīng)過轉(zhuǎn)播收到的RTP H264和AAC包轉(zhuǎn)化成MP4包,“喂給“<video>進行播放
下面拿到streamedian的code來感受一下:
方法一:通過官網(wǎng)下載
可能不是最新版,streamedian團隊還在不斷地修復bug中,建議用方法二、三下載最新更新的版本
進入https://streamedian.com 完成注冊并登錄
可以看到最上面紅框標注的是我們需要的客戶端和服務端的JS程序;
針對客戶端,如果你使用H5的原生播放器<video>標簽,下載Download player即可,此外還提供了代替版本————結(jié)合非原生H5播放器的clappr integration、videojs integration、Flowerplayer integration可供選擇。這里我只下載了Download player
針對服務端,下載proxy,這里的.rpm和.deb是兩種格式,選擇其一下載,我這里用的ubuntu,.deb更適用,點擊下載
接下來是對我們使用的免費版本streamedian的特性描述;
在Domain欄里。你需要輸入你所使用的客戶端的域名或IP,Add之后,點擊Download license。保存好這個license后面會用到,后面會解釋為什么要在license中明確特定的客戶端域名
方法三:從git上拉下來
npm install git://github.com/Streamedian/html5_rtsp_player.git
方法二:下載git的壓縮包
梳理一下,我們現(xiàn)在下載了什么呢?客戶端JS streamedian,服務端proxy streamedian_proxy.deb,一個licsense wsp.lic
將streamedian_proxy.deb和wsp.lic分別上傳至服務器,并在streamedian_proxy.deb根目錄下sudo dpkg -i streamedian_proxy.deb #安裝streamedian_proxy.deb軟件包(其中-i等價于--install)
安裝好后會生成/etc/ws_rtsp.ini,進入這個路徑,利用vim進行配置,這里我們只要設置general,其中port就是你的服務端轉(zhuǎn)播服務的端口,liscense_path則是你上傳的wsp.lic的絕對路徑,PRO version的參數(shù)可以不進行修改
配置好端,可以用service ws_rtsp start命令啟動該服務,那么就在后端相應端口建立起了一個將rtsp轉(zhuǎn)播服務。至此服務端已經(jīng)配置好,只要前端把rtsp地址通過socket發(fā)送給服務端,就可收到rtsp流的socket包了
service ws_rtsp stop命令可以用于停止該服務,ps -aux|grep ws_rtsp命令可以用于查詢該服務進程的運行情況
用Vs Code打開下載好的streamedian
終端運行npm install下載依賴
終端運行npm install --global rollup這里我們安裝的的rollup是一個JS模塊打包工具,后面會用到
接下來打開rollup.config.js,其中的entry配置了源文件,target則指定了打包生成的目標文件的目錄及文件名。終端運行rollup -c,可以看到在dist目錄下打包生成了目標文件streamedian.js
至此我們的客戶端工作完成一半,客戶端的頁面在哪里呢?下面我們來做一個最簡單的頁面,這里以文件中的index.html為例
可以看到<script>標簽中引用了我們打包好的streamedian.js
引用了<video>標簽播放rtsp視頻
<source>中指定了rtsp流源,rtsp://184.72.239.149/vod/mp4:BigBuckBunny_175k.mov是一個穩(wěn)定的可用于測試的源
socket的參數(shù)則是我們運行的rtsp流轉(zhuǎn)播服務器運行url,格式為ws://服務器IP:端口號,可以看到這里的端口號就是之前配置好的1104
現(xiàn)在我們在瀏覽器中打開index.html,可是并沒有視頻顯示!我的理解是,前期我們在license中設置過客戶端的IP或域名,這意味對服務端來說,只對我們制定的客戶端進行流轉(zhuǎn)播,因此還差一步
把index.html及streamedian.js放在同一目錄下,并上傳至制定的客戶端服務器
大功告成~~
不要在constructor中做
這樣寫應該沒問題的,這不是props的錯,props只是一個名稱,用aaa都可以的,可能是版本的問題,看看你的版本號,以前的版本我記得是用的scope="props",沒有前面的slot-
你的apache沒有配置PHP模塊吧。
看下你請求的header信息。
這個主要是Angular臟檢查和echart的requestAnimationFrame方法沖突的問題。echart在繪制完成圖表之后,還是會不停調(diào)用requestAnimationFrame方法,而這個方法會觸發(fā)Angular的臟檢查,造成Angular不斷的檢查DOM樹,導致CPU占用一直居高不下,解決辦法如下:
this.ngZone.runOutsideAngular(() => {
this.chart = echarts.init(this.root.nativeElement);
this.chart.setOption(this.option, true);
})
這樣可以讓charts圖表的相關方法排除在Angular的臟檢查之外。
深入探討和研究可以參考:
echarts在GitHub上的一個關于該問題的issue
segmentfault探討這個問題的一篇文章
style.height獲取不了的,你高度沒寫在行間,也就是style里,用offsetHeight
請問解決了嗎
沒有動作應該是不能彈出的吧
如果不使用路由,你可以把要跳轉(zhuǎn)的組件引入進來,然后把當前的組件替換掉
fetch成功之后那數(shù)據(jù)放到state里面,然后在render下面if判斷一下根據(jù)數(shù)據(jù)來顯示不同的組件
我猜想可能有:1.掃描體驗版小程序得微信號有沒有體驗權(quán)限;2.看看微信web開發(fā)者工具模擬器有沒有走的是videoLists路徑,如果走了,那就是可能是預覽模式還改成普通編譯。其他的話,看看控制臺報錯了沒,根據(jù)報錯信息來排查一下bug
core.modules.ts
import { QuoteService } from 'xxx'
...
providers: [
{
provide: 'BASE_CONFIG', useValue: {
uri: 'http://localhost:3000'
}
},
QuoteService
]你好!提供一種思路。
既然用translateY來做上下滑動,可以用變量記錄元素的translateY值,touchmove事件中在原translateY基礎上加上手機滑動的距離。下面是一個簡單的例子,你可以看看。其中css()是設置及獲取transform屬性值的函數(shù)。
var startPoint = 0;
var startEl = 0;
inner.addEventListener('touchstart', function(e) {
startPoint = e.changedTouches[0].pageY;
startEl = css(inner, 'translateY');
});
inner.addEventListener('touchmove', function(e) {
var nowPoint = e.changedTouches[0].pageY;
var dis = nowPoint - startPoint;
var translateY = dis + startEl;
css(inner, 'translateY', translateY);
});
function css(element, attr, val){
if(!element.transform){
element.transform = {};
}
if(typeof val === "undefined"){
if(typeof element.transform[attr] === "undefined"){
switch(attr){
case "scale":
case "scaleX":
case "scaleY":
case "scaleZ":
element.transform[attr] = 100;
break;
default:
element.transform[attr] = 0;
}
}
return element.transform[attr];
} else {
element.transform[attr] = val;
var transformVal = "";
for(var s in element.transform){
switch(s){
case "scale":
case "scaleX":
case "scaleY":
case "scaleZ":
transformVal += " " + s + "("+(element.transform[s]/100)+")";
break;
case "rotate":
case "rotateX":
case "rotateY":
case "rotateZ":
case "skewX":
case "skewY":
transformVal += " " + s + "("+element.transform[s]+"deg)";
break;
default:
transformVal += " " + s + "("+element.transform[s]+"px)";
}
}
element.style.WebkitTransform = element.style.transform = transformVal;
}
}ctx.rotate()
我用的是2.2.13,當聯(lián)動的時候數(shù)據(jù)就錯亂了,真是無語了,如一樓所說的退回2.2.9就好了,怎么給他們反饋啊,這么大bug
提供一個思路, 預先將所有video標簽插入文檔中 然后顯示第一個,第一個播完顯示第二個
北大青鳥APTECH成立于1999年。依托北京大學優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
達內(nèi)教育集團成立于2002年,是一家由留學海歸創(chuàng)辦的高端職業(yè)教育培訓機構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
北大課工場是北京大學校辦產(chǎn)業(yè)為響應國家深化產(chǎn)教融合/校企合作的政策,積極推進“中國制造2025”,實現(xiàn)中華民族偉大復興的升級產(chǎn)業(yè)鏈。利用北京大學優(yōu)質(zhì)教育資源及背
博為峰,中國職業(yè)人才培訓領域的先行者
曾工作于聯(lián)想擔任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍懿科技有限責任公司從事總經(jīng)理職務負責iOS教學及管理工作。
浪潮集團項目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗,技術(shù)功底深厚。 授課風格 授課風格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應用開發(fā)經(jīng)驗。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。