整合營(yíng)銷服務(wù)商

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

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

          快影怎么在視頻里添加字幕制作方法 自動(dòng)/手動(dòng)添加使用說(shuō)明

          閩南網(wǎng)]

          快影作為快手專屬的視頻編輯軟件,可以為視頻添加簡(jiǎn)單的倒放、變速、轉(zhuǎn)場(chǎng)效果,操作又十分便捷的,非常適合視頻分享達(dá)人,而字幕作為必不可少的元素之一,自然是需要多加考量的。

          字幕制作:

          其實(shí)為視頻添加字幕的方法并不復(fù)雜,用戶在打開快影的軟件之后,首先需要選擇底端的“+”按鈕導(dǎo)入手機(jī)本地的視頻素材文件。

          在進(jìn)入視頻編輯界面之后,我們接著點(diǎn)擊底部的“T”按鈕,這樣就能夠添加字幕進(jìn)行編輯了。

          添加字幕的方式分為兩種:一種是語(yǔ)音識(shí)別自動(dòng)添加,另一種則需要手動(dòng)編輯,下面就來(lái)看看具體操作吧。

          自動(dòng)添加:

          可以將含有旁白聲音的素材導(dǎo)入快影,選擇字幕,可以看到有一個(gè)自動(dòng)識(shí)別的菜單。盡量使用普通話,辨識(shí)度較高。

          可以看到上方提示我們正在識(shí)別語(yǔ)音,而且可以看到識(shí)別進(jìn)度。

          識(shí)別完成之后,我們點(diǎn)擊右上角的完成按鈕。

          手動(dòng)添加:

          如果您對(duì)于語(yǔ)音識(shí)別效果不滿意的,可以手動(dòng)進(jìn)行編輯

          滑動(dòng)視頻進(jìn)度條,輸入相應(yīng)的字幕之后,我們還可以隨意調(diào)整字幕的字體格式、大小、顏色狀態(tài),讓字幕和視頻內(nèi)容更好的貼合在一起!不過(guò)目前字體尺寸只有小號(hào)中號(hào)大號(hào)三種。

          最后找到保存完成的視頻,點(diǎn)擊播放,在視頻的下方可以看到我們添加的文字。這些文字可以是根據(jù)我們視頻中的語(yǔ)音轉(zhuǎn)換而成的文字,也可以是自己加工過(guò)的。

          以上就是小編為大家?guī)?lái)的快影視頻添加字幕教程,有需要的小伙伴可以了解下。

          節(jié)概覽:

          • 進(jìn)度條
          • 音軌原理

          這一章主要分享兩個(gè)東西,分別是進(jìn)度條和音軌。進(jìn)度條相對(duì)來(lái)說(shuō)比較簡(jiǎn)單,于是先講。

          這是上一次繪制好的音樂(lè)播放器,本節(jié)也在它的基礎(chǔ)上進(jìn)行完善。

          進(jìn)度條

          對(duì)于進(jìn)度條,它可以實(shí)時(shí)地展示音樂(lè)的進(jìn)度,相信大家都不陌生。

          1.繪制進(jìn)度條

          我們?cè)诎粹o區(qū)的上面,也就是屏幕底部的區(qū)域繪制進(jìn)度條。

          上代碼:

          <body>
           <div id='music' class='music'>
           <div class='screen'>
           <i id='music-icon' class="iconfont icon-yinle"></i>
           <div class='progress'>
           <div class='time'></div>
           <div class='bar'></div>
           </div>
           </div>
           <div class='buttons'>
           <i id='prev' class="iconfont icon-icon"></i>
           <i id='play' class="iconfont icon-bofanganniu"></i>
           <i id='pause' class="iconfont icon-zanting" style="display:none"></i>
           <i id='next' class="iconfont icon-icon1"></i>
           </div>
           <span id='info' class='info'></span>
           
           </div>
          </body>
          

          代碼中progress的部分就是我們需要添加的進(jìn)度條區(qū)域。

          給它寬度、高度和背景色:

          .music .screen .progress {
           width:100%;
           height:40px;
           background:#ccc;
          }
          

          我們希望讓它緊挨著播放器屏幕的底部,只需要給它一個(gè)定位就行了。關(guān)于元素的定位,在之前的章節(jié)中我已經(jīng)詳細(xì)地講過(guò),所以在這里就不再贅述了。

          position: absolute;
          bottom:0;
          

          下來(lái)了。

          我們將該區(qū)域分為上下兩塊

          .music .screen .progress .time {
           border-bottom:1px solid #fff; /*演示用,為了看清楚上下元素塊的界限*/
           height:20px; /*高度為父盒子的一半*/
           line-height:20px; /*為了讓文字垂直居中*/
           text-align: right; /*文字右對(duì)齊*/
          }
          

          加上一個(gè)測(cè)試的時(shí)間數(shù)據(jù):

          <div class='time'>1:30</div>
          

          確認(rèn)沒(méi)問(wèn)題后,把背景色和邊框都去掉。同時(shí)調(diào)色和優(yōu)化一下:

          .music .screen .progress {
           width:100%;
           height:40px;
           position: absolute;
           bottom:0;
          }
          .music .screen .progress .time {
           color: #fff;
           height:20px;
           line-height:20px; /*為了讓時(shí)間垂直居中*/
           text-align: right; /*文字右對(duì)齊*/
           padding-right: 10px;
          }
          

          這樣就好看多了吧。

          2.動(dòng)態(tài)獲取變化的時(shí)間

          一步一步來(lái),接下來(lái)我們先拿到正在播放的時(shí)間:

          /**
           * 當(dāng)音頻時(shí)間正常更新的時(shí)候
           */
          musicBox.musicDom.ontimeupdate = function(){
           var currentTime = Math.floor(this.currentTime); //獲取當(dāng)前時(shí)間
           var m = parseInt(currentTime / 60);//分鐘
           var s = parseInt(currentTime % 60);//秒鐘
           var time = (m<10?("0"+m):m)+":"+(s<10?("0"+s):s); //格式化
           console.log(time); //打印出來(lái)看看
          }
          

          ontimeupdate你可以理解為一個(gè)監(jiān)聽事件,每次時(shí)間更新的時(shí)候,就會(huì)自動(dòng)進(jìn)入里面的邏輯。

          在圖中可以很清晰地看到,我們已經(jīng)能拿到正在播放的時(shí)間了。

          接下來(lái),我們將這個(gè)動(dòng)態(tài)變化的時(shí)間在屏幕上顯示出來(lái)。

          document.getElementsByClassName('time')[0].innerHTML = time;
          

          嗯,這樣就行了。

          2.計(jì)算百分比

          // 百分比 = 當(dāng)前時(shí)長(zhǎng) ÷ 總時(shí)長(zhǎng) × 100%
          var total = this.duration;//總時(shí)長(zhǎng)
          console.log(currentTime + '=======' + total);
          document.getElementsByClassName('time')[0].innerHTML = Math.floor(currentTime / total * 100) + "%";
          

          有了百分比,進(jìn)度條其實(shí)也就有了。我們現(xiàn)在將bar的樣式加上,寬度默認(rèn)0%

          .music .screen .progress .bar {
           height:20px;
           background: #eee;
           width:0%; 
           opacity: 0.6;
          }
          

          然后動(dòng)態(tài)改變寬度:

          var total = this.duration;
          document.getElementsByClassName('bar')[0].style.width = Math.floor(currentTime / total * 100) + "%";
          

          成功了,進(jìn)度條就這么產(chǎn)生了。其中最關(guān)鍵的一點(diǎn)就是audio標(biāo)簽元素自帶的ontimeupdate 事件,我們可以在里面獲取總時(shí)長(zhǎng)和當(dāng)前時(shí)長(zhǎng),然后就可以計(jì)算出百分比,通過(guò)給div動(dòng)態(tài)設(shè)置寬度來(lái)實(shí)現(xiàn)進(jìn)度條的效果。

          考慮到篇幅,我本章就不單獨(dú)封裝插件了,將進(jìn)度條集成到我們的musicBox里面,還需要用到回調(diào)函數(shù)等一系列的知識(shí)點(diǎn)。

          音軌

          1. 繪制音軌盒子

          <div id='music' class='music'>
           <div id='trackBox' class="trackBox"></div>
           <div class='screen'>
           <i id='music-icon' class="iconfont icon-yinle"></i>
           <div class='progress'>
           <div class='time'></div>
           <div class='bar'></div>
           </div>
           </div>
           <div class='buttons'>
           <i id='prev' class="iconfont icon-icon"></i>
           <i id='play' class="iconfont icon-bofanganniu"></i>
           <i id='pause' class="iconfont icon-zanting" style="display:none"></i>
           <i id='next' class="iconfont icon-icon1"></i>
           </div>
           <span id='info' class='info'></span>
           
          </div>
          

          為了方便定位,我們將 trackBox 畫在music盒子里面。

          .trackBox {
           position:absolute;
           width:400px;
           height:220px;
           border: 1px solid #ccc;
           z-index: 3;
           background: #333;
           left:210px;
           top : -2px;
           border-radius: 6px;
          }
          

          2. 畫第一條音軌

          <div id='trackBox' class="trackBox">
           <i class='items'></i>
          </div>
          .trackBox .items {
           position: absolute;
           width:10px;
           height:100px;
           background:#eee;
          }
          

          我們希望音軌靠著下方,并且它們之間能有一個(gè)區(qū)分,于是添加這兩個(gè)屬性:

          bottom:0px;
          border: 1px solid #ccc; 
          

          OK,下來(lái)了。

          2. 畫所有的音軌

          一個(gè)音軌肯定不夠,我們需要根據(jù)音軌盒子的寬度和每一條音軌的寬度,來(lái)計(jì)算出一共需要多少條音軌:

          /*獲取音軌盒子*/
          var trackBox = utils.dom('#trackBox');
          /*音軌盒子的寬度*/
          var maxWidth = trackBox.clientWidth;
          /*音軌的單個(gè)寬度*/
          var singleWidth = 10;
          /*計(jì)算音軌的最大數(shù)量*/
          var len = Math.floor(maxWidth / singleWidth) ;
          alert('音軌盒子最多盛放' + len + '條音軌');
          

          //拼接音軌
          var tracks = "";
          for(var i = 0;i < len; i++){
           /*計(jì)算位置*/
           var left = 10 * i + 'px';
           tracks += "<i class='items' style='left:"+left+"'></i>";
          }
          trackBox.innerHTML = tracks;
          

          拼接后的效果:

          2. 通過(guò)隨機(jī)數(shù)讓音軌動(dòng)起來(lái)

          之前的章節(jié) js常用方法和一些封裝(2) -- 隨機(jī)數(shù)生成 中,正好有一個(gè)隨機(jī)數(shù)的方法,所謂養(yǎng)兵千日,用兵一時(shí)啊。

          我們把那個(gè)隨機(jī)數(shù)的方法添加到工具包:

          util.js

          randomNum : function (num){
           return Math.floor(Math.random()*(num+1));
          }
          

          測(cè)試:

          //模擬音軌動(dòng)畫
          setInterval(function(){
           for(var i = 0;i < len; i++){
           console.info(i);
           document.getElementsByClassName('items')[i].style.height = utils.randomNum(110) + 'px';
           }
          },200);
          

          效果:

          原理就是用了一個(gè)js定時(shí)器,每隔200毫秒就改變所有音軌的高度,當(dāng)然,高度是一個(gè)隨機(jī)數(shù)值。

          至于音軌和播放器的對(duì)接,雖然我已經(jīng)寫好,并且已經(jīng)集成到musicBox里面,但是里面牽扯到比較多的知識(shí)點(diǎn),寫起來(lái)需要很多時(shí)間,所以暫且先放一放吧。

          感悟

          音樂(lè)播放器至此算是完成了一個(gè)1.0版本,以后看情況我會(huì)繼續(xù)將這個(gè)案例更新下去,甚至還可能對(duì)接后臺(tái),連數(shù)據(jù)庫(kù)等等。

          在工作的日子里,我曾經(jīng)迷茫過(guò),尤其是剛開始做編程的工作時(shí),非常迷茫。

          每天都是增刪改查,增刪改查,就覺(jué)得很沒(méi)意思。

          一段時(shí)間下來(lái),我開始迷茫了,不知道自己該學(xué)一些什么東西。

          感覺(jué)技術(shù)太多,什么都想學(xué),卻又怕沒(méi)時(shí)間。

          在這個(gè)信息爆炸、日新月異的時(shí)代,技術(shù)更新得非常快,很多人都在各種新技術(shù)的浪潮下變得不知所措。我就有這樣的體會(huì),于是看各種書,各種視頻,生怕自己跟不上時(shí)代的節(jié)奏。

          可是,我一直以來(lái)都忽略了一個(gè)重點(diǎn),那就是——我是否真的對(duì)這個(gè)行業(yè)感興趣?

          如果在幾年前,我會(huì)說(shuō)是的,正因?yàn)閷?duì)計(jì)算機(jī)的興趣,我才會(huì)放棄之前所學(xué)的專業(yè),踏入 Java 、JavaScript 的坑中。

          再后來(lái),我發(fā)現(xiàn)一個(gè)道理,不論你現(xiàn)在的工作是什么,都請(qǐng)盡可能地去愛(ài)上他。不要為了生計(jì)而去做一份工作,如果實(shí)在辦不到的話,就給自己撒一個(gè)美麗的謊言吧。

          不然的話,軟件開發(fā)到了后期你會(huì)很迷茫的。

          給自己一個(gè)溫馨的微笑,學(xué)著熱愛(ài)這個(gè)行業(yè),這個(gè)工作,就是對(duì)自己最大的獎(jiǎng)賞。

          享受編程的樂(lè)趣,懷著感恩的心去體會(huì)每一天生活中的細(xì)節(jié)。

          享一個(gè)很酷炫的視頻,通過(guò)滑動(dòng)桿控制儀表進(jìn)度顯示,同時(shí)伴有燈光效果,看起來(lái)非常震撼。html非常簡(jiǎn)單,只有幾個(gè)元素,使用了一個(gè)進(jìn)度條滑動(dòng)桿的控件。接下來(lái)我們重點(diǎn)來(lái)看一下CSS,從這里可以看到,頁(yè)面長(zhǎng)什么樣子。

          好的,現(xiàn)在來(lái)說(shuō)一下滑動(dòng)桿的樣式,這是一個(gè)滑軌的樣式,其他屬性沒(méi)有什么特別的,我們主要看一下這幾個(gè)。

          首先要自定義進(jìn)度條的樣式,box-shadow:因?yàn)檫@個(gè)控件瀏覽器默認(rèn)會(huì)有一套自己的樣式,只有把 shadow設(shè)為難才可以自定義模式,如果把這個(gè)樣式去掉,那整個(gè)滑桿其它的樣式全部都不起效了。

          非常重要的是這兩句的設(shè)置,這兩句有什么用呢?當(dāng)移動(dòng)滑塊時(shí),大家注意滑軌,在滑塊的左邊它就會(huì)變成藍(lán)色,滑塊的右邊還是黑色,無(wú)論移到什么地方都一樣,主要用來(lái)控制這一個(gè)的。

          接下來(lái)分析一下這兩句,為什么背景這里用了兩個(gè)顏色?第一個(gè)是漸變色,第二個(gè)是黑色。最主要的是漸變色里面的這兩個(gè)顏色還是同一個(gè),lwhite都是這一個(gè)變量,說(shuō)白了它壓根沒(méi)有漸變的效果。

          ·box-shadow:為什么不直接用這個(gè)顏色而要把它搞成漸變?box-shadow:首先用兩個(gè)顏色,是因?yàn)榛壦托枰獌蓚€(gè)顏色,滑塊的左邊是藍(lán)色,滑塊的右邊是黑色,這兩個(gè)顏色。之所以會(huì)對(duì)同一個(gè)顏色做漸變,是因?yàn)樾枰浜蟗oxsha一起來(lái)使用。

          通常background-size是用來(lái)設(shè)置背景圖顯示的,對(duì)單一顏色是不起作用的。這里用線性漸變就相當(dāng)于取巧。white用了一個(gè)小技巧,因?yàn)檫@里漸變的就是同一個(gè)顏色,和單一顏色沒(méi)有區(qū)別,初始值設(shè)置為0100%,也就是這一個(gè)顏色。漸變的顏色開始是沒(méi)有顯示的,也就是現(xiàn)在這樣子。

          如果我們把它改一下,改成50%。第一個(gè)顏色就會(huì)顯示到中間位置了,再改成90%,試一下。第一個(gè)顏色就會(huì)顯示到后面了。

          →當(dāng)滑塊移動(dòng)的時(shí)候通過(guò)JS修改這一個(gè)值,是不是就可以動(dòng)態(tài)同步滑軌的顏色狀態(tài)了?這里先改回0,再看一下這個(gè)樣式。s inputltype='range:webkit-lips thumb。這是一個(gè)滑塊的樣式,沒(méi)有什么特別要說(shuō)的,用的屬性都很簡(jiǎn)單。

          主要就來(lái)看一下這個(gè)偽元素,用這個(gè)偽元素就說(shuō)明要修改的是滑塊的樣式。僅此而已。

          →還有就是滑塊的發(fā)光效果用的就是陰影,也就是這一個(gè)的樣式。以下是清除中間顯示百分比數(shù)字的樣式,沒(méi)有什么特別的,主要是中間發(fā)光的效果。后面兩個(gè)是中間儀表盤的樣式,但現(xiàn)在還沒(méi)有span,需要通過(guò)JavaScript創(chuàng)建出來(lái)。樣式很簡(jiǎn)單,沒(méi)有特別的,我們來(lái)看看JS。現(xiàn)在已經(jīng)獲取了幾個(gè)對(duì)象來(lái)做一個(gè)for循環(huán),畫出100個(gè)指針。我們需要通過(guò)JavaScript來(lái)創(chuàng)建這些span,因?yàn)檫@些span需要在圖形的表盤上分布。這些span需要旋轉(zhuǎn)一定的角度,然后再放入main中。現(xiàn)在表盤應(yīng)該出來(lái)了,沒(méi)有問(wèn)題,但是似乎有些擁擠。我們需要修改CSS,將寬度設(shè)置為40個(gè)TB。將滑動(dòng)桿向下移動(dòng)25個(gè)TB。現(xiàn)在來(lái)看一下效果。現(xiàn)在來(lái)處理一下,當(dāng)移動(dòng)滑塊時(shí),顏色和中間的百分比會(huì)隨之變化。實(shí)際上,這并不難,只需要監(jiān)聽滑桿的輸入事件。我們需要修改滑軌的背景大小,只需將其水平方向的where復(fù)給百分號(hào)即可,而垂直方向則保持100%的寬度。

          中間顯示的百分比很簡(jiǎn)單,只需要將值給它就可以了。我們來(lái)看一下效果,移動(dòng)滑塊沒(méi)有問(wèn)題,滑軌的顏色和上面的百分比都跟著發(fā)生變化了。

          接下來(lái),我們需要寫一個(gè)函數(shù),當(dāng)移動(dòng)滑塊時(shí),改變儀表指針的顏色。我們需要循環(huán)所有的指針。當(dāng)i小于傳入的值時(shí),我們需要設(shè)置前面一部分指針的顏色和屬性。

          首先,我們需要設(shè)置自定義的顏色bg。我們使用了CSS的色相飽和度函數(shù),后面兩個(gè)值代表飽和度和亮度,通常設(shè)置為100%和50%。這并不重要,我們需要設(shè)置色相。我們需要根據(jù)不同位置的指針設(shè)置不同的色相,這樣顏色看起來(lái)會(huì)更加豐富。另外,我們還需要設(shè)置sg的顏色屬性。

          其他指針使用CSS中設(shè)置的黑色背景和透明sg。現(xiàn)在來(lái)看一下指針的顏色狀態(tài)是否發(fā)生了變化,移動(dòng)滑塊,沒(méi)有問(wèn)題,可以跟著發(fā)生變化了。

          這個(gè)視頻到此結(jié)束,感謝大家的收看。


          主站蜘蛛池模板: 国产乱码精品一区三上| 无码精品一区二区三区免费视频| 无码国产精品一区二区免费虚拟VR| 无码毛片一区二区三区中文字幕| 无码人妻AⅤ一区二区三区| 亚洲国产精品一区二区第一页免 | 一区二区三区久久精品| 伊人久久大香线蕉AV一区二区| 免费精品一区二区三区第35| 中文字幕一区二区三区日韩精品 | 一区二区精品视频| 日韩AV无码一区二区三区不卡| 无码日韩人妻av一区免费| 亚洲av乱码中文一区二区三区| 亚洲电影一区二区| 亚洲福利秒拍一区二区| 亚洲综合无码一区二区| 亚洲国产视频一区| eeuss鲁片一区二区三区| 国产福利一区二区精品秒拍| 动漫精品第一区二区三区| 韩国女主播一区二区| 精品国产亚洲第一区二区三区| 日韩一区二区三区射精| 成人精品一区久久久久| 中文国产成人精品久久一区| 国产一区二区精品久久岳| 亚洲AV综合色区无码一区爱AV| 国产精品揄拍一区二区久久| 国产成人精品一区二三区熟女 | 久久久91精品国产一区二区| 亚洲综合色一区二区三区小说| 国产拳头交一区二区| 伊人久久精品无码av一区| 一区二区无码免费视频网站| 国产丝袜一区二区三区在线观看| 区三区激情福利综合中文字幕在线一区亚洲视频1 | 99久久精品费精品国产一区二区| 国产精品成人国产乱一区| 射精专区一区二区朝鲜| 亚洲美女高清一区二区三区|