整合營銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          看動漫也能學(xué)Javascript?求求你了,不要這么

          看動漫也能學(xué)Javascript?求求你了,不要這么快就學(xué)會前端開發(fā)

          動漫也能學(xué)前端?

          帶著疑問進(jìn)來了就別走了!看動漫都能學(xué)前端,那我前面死記硬背記下來的前端理論知識跟代碼那不是白瞎了么?

          沒錯!今天小編帶來一本書籍,從動漫和人物場景對話中就能學(xué)會前端

          《Head first Javascript 中文版》用講故事的方法講解知識,讓人耳目一新。小編讀了幾章下來發(fā)現(xiàn)學(xué)習(xí)的過程中絲毫沒有感到枯燥,是一本不可多得的好書!小編找來了本書的PDF電子版分享給大家,還在為學(xué)習(xí)前端煩惱的小伙伴們有福啦!

          下面簡單介紹一些目錄,文末附領(lǐng)取方式。

          注意!《Head first Javascript 中文版》分享格式為PDF電子版,小伙伴們手機(jī)也可以學(xué)習(xí)閱讀哦!

          最后,小編還為大家準(zhǔn)備了全套的前端自學(xué)教程資料+PDF電子書分享。

          獲取方式:請轉(zhuǎn)發(fā)+關(guān)注并私信“資料”即可獲取《Head first Javascript 中文版》PDF學(xué)習(xí)電子書+全套的前端自學(xué)視頻教程一套!人人有份!

          近想重溫電腦里的視頻,想要用電視來看,找了很多方法,比如電腦搭建samba服務(wù)器,搭建jellyfin服務(wù)器,把視頻拷貝到U盤里播放等等,設(shè)置操作復(fù)雜且對電腦的配置要求比較高,前前后后折騰了很久,雖也實(shí)現(xiàn)了再電視上播放電腦里的視頻,但是效果體驗(yàn)大打折扣。

          最后找到了幾年前的暴風(fēng)影音軟件,發(fā)現(xiàn)這對于不想折騰的朋友,是非常簡單又穩(wěn)定的一個局域網(wǎng)電視播放電腦里視頻的解決方案。省去了各種復(fù)雜的設(shè)置和權(quán)限問題。

          實(shí)現(xiàn)方法如下:

          電視端通過U盤或者當(dāng)貝助手下載安裝暴風(fēng)影音TV版

          下載鏈接 http://az3.ddooo.com/bfyybdb_58903.apk?key=e0d518b1ecdb4ac64ff0cdbfa73b1bc0&uskey=ed16cbd15fbc9a074a6c2e828e55ed18 或者自行搜索下載

          電腦端安裝飛屏軟件

          下載鏈接 https://pc.qq.com/detail/4/detail_56604.html 或者自行搜索下載

          官網(wǎng)下載地址:http://feiping.baofeng.com/(已無法訪問)

          待電腦端軟件和電視端軟件都安裝完畢之后,打開電腦端暴風(fēng)飛屏軟件,添加要共享的視頻,可以共享整個文件夾或者單個文件,可以很好的保護(hù)隱私。加號添加文件或者文件夾,或者直接拖動視頻文件到窗口里即可,操作非常簡單。

          暴風(fēng)飛屏軟件截圖

          電腦端打開暴風(fēng)影音TV版,找到飛屏功能,即可掃描到局域網(wǎng)的電腦,進(jìn)入之后即可訪問剛才電腦端添加的視頻,實(shí)測可以輕松播放4k影片。

          很好用的一款軟件,本人之前也在暴風(fēng)影音工作過一段時間,可惜暴風(fēng)影音因?yàn)榻?jīng)營不善,現(xiàn)已停止了軟件的支持,但是不妨礙使用。無廣告,操作簡單,界面也很簡潔,在現(xiàn)在廣告滿天飛的時代里,算是一種曲線解決問題吧。

          視頻采集和管理是多模態(tài)大數(shù)據(jù)應(yīng)用場景必不可少的環(huán)節(jié),在基于Vue2前端框架實(shí)現(xiàn)的Web界面如何進(jìn)行視頻的展示和播放是開發(fā)人員會遇到的一個主要技術(shù)問題。本文提供基于Vue2+video.js實(shí)現(xiàn)視頻的預(yù)覽的方案。

          采集的視頻數(shù)據(jù)在前端視頻管理模塊列表中展示,然后用彈窗查看視頻詳情并預(yù)覽播放。最開始使用 vue-mini-player 組件,可輕松實(shí)現(xiàn)視頻在編輯界面的彈窗中播放,但是遇到兩個問題:1)彈窗中播放著視頻,關(guān)閉窗口后,視頻流不會停止。2)關(guān)閉窗口,重新打開新的視頻編輯窗口后,依舊是繼續(xù)播放之前的視頻。其原因應(yīng)該是關(guān)閉舊的窗口后,視頻播放的控件沒有銷毀,導(dǎo)致新打開的控件其實(shí)還是舊控件的實(shí)例。查了很多關(guān)于vue-mini-player的文檔和使用樣例,沒有找到如何銷毀vue-mini-player控件。

          視頻列表

          單條視頻數(shù)據(jù)編輯界面

          video.js 是一個通用的可嵌入網(wǎng)頁的視頻播放器JS庫,在Vue2中引用video.js可以創(chuàng)建播放組件對象,關(guān)閉視頻時能進(jìn)行操作。基于Vue2使用video.js方法如下。

          1. 安裝video.js:
          npm install video.js@6.13.0
          1. main.js注冊
          import videoJs from 'video.js'
          import 'video.js/dist/video-js.css'
          Vue.prototype.videoJs=videoJs //注冊
          1. vue代碼文件中使用組件

          創(chuàng)建<video>組件,可放在彈窗中任何需要的地方。重點(diǎn)是給出id值,設(shè)置屬性時需要用到。

          <template>
            <el-dialog :title="title" :visible.sync="open" width="900px" append-to-body>
                <video id="casvideoplayer" ref="videoPlayerRef" class="video-js">
                    <source :src="playUrl" type="video/mp4">
                </video>
                ...
                <div slot="footer" class="dialog-footer">
                  	<el-button type="primary" @click="submitForm">確 定</el-button>
                  	<el-button @click="cancel">取 消</el-button>
                </div>
              </el-dialog>
          </template>
          export default {
          data() {
              return {
              // 使用video.js播放視頻配置
              videoJsPlayer: null,
              playUrl:"", 			//視頻文件鏈接
              videoPlayerOption: {
                  controls: true, 			//確定播放器是否具有用戶可以與之交互的控件。沒有控件,啟動視頻播放的唯一方法是使用autoplay屬性或通過Player API。
                  // url: "", 							//要嵌入的視頻資源url(不起作用?)
                  poster: '',   					//封面
                   autoplay: false, 	//自動播放屬性, true/false/"muted"(靜音播放)
                  muted: false, 				//靜音播放
                  preload: 'none', 		//建議瀏覽器是否應(yīng)在<video>加載元素后立即開始下載視頻數(shù)據(jù)。
                  fluid: false, 					//是否自適應(yīng)布局,播放器將會有流體體積。換句話說,它將縮放以適應(yīng)容器。
                  width: "850px", 		//視頻播放器的顯示寬度(以像素為單位)(fluid=false時起作用)
                  height: "600px", 		//視頻播放器的顯示高度(以像素為單位)(fluid=false時起作用)
               },
          };
          methods: {
             // 視頻列表的“修改”按鈕,點(diǎn)擊后顯示修改彈窗
             handleUpdate(row) {
                  // 從后臺獲取視頻信息
                  getVedio(row.id).then(response=> {
                      this.form=response.data;    //修改彈窗其他字段信息賦值
                      this.title="修改視頻管理";
                      this.open=true;    								// 顯示修改彈窗
          
                      // video.js組件播放視頻
                      this.videoPlayerOption.poster=response.data.avator;
                      this.playUrl=response.data.contentsOrg;
                      this.showVideoWindow();   //設(shè)置視頻播放控件
                  });
               },
                 
              //(重點(diǎn)是這里)
              // 使用video.js組件播放視頻
               showVideoWindow(){
                  // 如果視頻播放控件已經(jīng)存在,切換視頻url,重新播放;如果控件不存在,創(chuàng)建
                  if(this.videoJsPlayer){
                      this.videoJsPlayer.src([
                           {
                              src: this.playUrl,
                              type: "video/mp4"
                           }
                       ]);
                      // 如何圖片不為空,設(shè)置視頻封面
                      if(this.videoPlayerOption.poster !=null && this.videoPlayerOption.poster !=""){
                      		this.videoJsPlayer.poster(this.videoPlayerOption.poster);
                       }
                      this.videoJsPlayer.load(this.playUrl);
                      // this.videoJsPlayer.play();      //自動播放(打開后,切換視頻后需自動播放)
                   }else{
                      // 最開始創(chuàng)建一次視頻播放組件
                      this.$nextTick(()=> {
                          this.videoJsPlayer=this.videoJs(
                              "casvideoplayer", 				//播放器控件id
                              this.videoPlayerOption //播放器設(shè)置項(xiàng)(這里設(shè)置的poster屬性不生效,需要在后面單獨(dú)設(shè)置)
                           );
                          this.videoJsPlayer.poster(this.videoPlayerOption.poster);  //貌似不生效?
                       })
                   }
               },
                 
              // 編輯彈窗頁面的“取消”按鈕
              cancel() {
                  // 重置視頻控件數(shù)據(jù)(video.js組件)
                  if(this.videoJsPlayer){
                      this.videoJsPlayer.reset();
                   }
          					this.reset();
           		},
          }

          以上代碼實(shí)現(xiàn)了在Vue2彈窗中播放視頻組件的功能,注意關(guān)閉彈窗時要使用“取消”按鈕。如果通過點(diǎn)擊彈窗右上角X關(guān)閉彈窗,視頻還可以在后臺繼續(xù)播放,但是打開一個新的視頻修改彈窗后,播放的視頻會終止,并切換到新視頻播放界面。即使這樣,目前的功能已經(jīng)不影響用戶正常使用。

          video.js還有一個強(qiáng)大功能,看到喜歡的畫面點(diǎn)擊右鍵可以保存視頻幀,另外支持畫中畫、設(shè)備投放等功能。

          video.js右鍵功能

          后續(xù)優(yōu)化改進(jìn)工作包括:1)把video.js視頻播放功能做成Vue組件,方便在不同的Vue代碼文件中調(diào)用。2)捕獲窗口關(guān)閉的事件(如點(diǎn)擊X關(guān)閉,或者鼠標(biāo)失焦點(diǎn)后關(guān)閉),關(guān)閉視頻流。

          video.js

          Vue

          【參考材料】

          video.js官方網(wǎng)站:https://videojs.com/

          其他編碼材料:

          https://blog.csdn.net/qq_60533482/article/details/128015308

          https://blog.csdn.net/Uookic/article/details/116131535

          https://www.cnblogs.com/DL-CODER/p/16833222.html


          主站蜘蛛池模板: 日韩人妻无码一区二区三区| 国产视频福利一区| 亚洲一区二区三区不卡在线播放| 99精品一区二区三区| 精品人妻AV一区二区三区| 国产一区二区三区精品久久呦| 国产午夜精品一区理论片飘花 | 狠狠色婷婷久久一区二区| 亚洲国产成人久久一区二区三区| 日韩一区二区三区在线| 色窝窝无码一区二区三区成人网站| 国产成人AV区一区二区三| 51视频国产精品一区二区| 制服丝袜一区在线| 日韩精品视频一区二区三区| 久久精品综合一区二区三区| 精品无码中出一区二区| 武侠古典一区二区三区中文| 国精产品一区一区三区有限在线| 久久99国产精一区二区三区| 日韩精品一区二区三区色欲AV| 麻豆精品久久久一区二区| 日韩国产精品无码一区二区三区| 久久久久国产一区二区| 无码精品人妻一区二区三区中| 久久国产午夜一区二区福利| 国产精品毛片一区二区三区| 亚洲综合无码一区二区| 国产精品一区视频| 制服美女视频一区| 一区二区精品在线| 国产精品一区二区在线观看| 又硬又粗又大一区二区三区视频 | 福利国产微拍广场一区视频在线 | 精品一区二区三区中文| 中文无码精品一区二区三区 | 骚片AV蜜桃精品一区| 亚洲av色香蕉一区二区三区| 精品一区二区三区视频在线观看| 无码人妻久久一区二区三区免费| 亚洲日韩AV一区二区三区四区|