成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

教你如何在JS模板里添加音頻/視頻

開發 前端
這次我的小分享是JS中添加媒體組件,雖然這個組件是視頻播放組件,但是換湯不換藥,還可以添加音頻哦,下面以一個簡單的例子講解。

[[422399]]

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com

前言

這次我的小分享是JS中添加媒體組件,雖然這個組件是視頻播放組件,但是換湯不換藥,還可以添加音頻哦,下面以一個簡單的例子講解O(∩_∩)O

(模擬器播放不了聲音哦,所以建議在真機上調試;如果你去看文檔你會發現有一些屬性名稱的右上角有個6+,這是要在API為6及以上才能適用,由于我的設備的API是5,所以下面講解的都不涉及支持API6+的)

概述

JS中的媒體組件——視頻播放組件,效果圖如下:

橫屏

正文

一、視頻播放組件的屬性、樣式、事件、方法介紹

【木棉花】:JS模板里添加音頻/視頻-鴻蒙HarmonyOS技術社區
【木棉花】:JS模板里添加音頻/視頻-鴻蒙HarmonyOS技術社區
【木棉花】:JS模板里添加音頻/視頻-鴻蒙HarmonyOS技術社區
【木棉花】:JS模板里添加音頻/視頻-鴻蒙HarmonyOS技術社區

只展示了支持API5的部分,更多請查看 官方文檔

二、JS中添加視頻/音頻

1.創建一個空白的工程

DevEco Studio下載安裝成功后,打開DevEco Studio,點擊左上角的File,點擊New,再選擇New Project,選擇Empty Ability(JS),然后點擊Next,給項目命名 video_js ,選擇設備類型Phone,最后點擊Finish。

【木棉花】:JS模板里添加音頻/視頻-鴻蒙HarmonyOS技術社區

2.創建一個視頻播放組件

在entry>src>main>js>default>pages.index>index.hml 文件里刪除以下代碼

  1. <text class="title"
  2.       {{ $t('strings.hello') }} {{ title }} 
  3.   </text> 

 然后再加一個容器組件,該容器組件里放我們要添加的媒體組件,"src"對應的是媒體文件所在位置,這里我的媒體文件名是“video.mp4”,以下分別是自動播放的設置、組件的長寬及視頻源縮放類型(詳情可以看上面的介紹,自行設定)、視頻播放的控制欄、各種事件名稱,所添加的代碼如下:

  1. <div> 
  2.         <video id='videoId' 
  3.  
  4.                src='/common/video.mp4' 
  5.                autoplay='false' 
  6.                style="object-fit:fill;width: 100%;height: 40%; " 
  7.                controls="true" 
  8.                onprepared='preparedCallback' 
  9.                onstart='startCallback' 
  10.                onpause='pauseCallback' 
  11.                onfinish='finishCallback' 
  12.                onerror='errorCallback' 
  13.                onseeking='seekingCallback' 
  14.                onseeked='seekedCallback' 
  15.                ontimeupdate='timeupdateCallback' 
  16.                onlongpress='change_fullscreenchange' 
  17.                onclick="change_start_pause" 
  18.              ></video> 
  19.     </div> 

 在entry>src>main>js>default>pages.index>index.css 文件里刪除 除了container以外的部分,最后該文件的代碼如下:

  1. .container { 
  2.     flex-direction: column
  3.     justify-content: center; 
  4.     align-items: center; 

3.添加對應事件

在entry>src>main>js>default>pages.index>index.js 文件里,先在data中給event賦初值,對于視頻的播放會涉及視頻的準備、播放、暫停、結束、播放失敗、進度條的時間顯示(播放狀態的時間進度、拖拽進度條的時間進度、總時長)、全屏的進入與退出

(1)視頻的準備prepared

該事件帶有參數duration,通過duration可以獲取視頻時長,單位為s;除此之外還可以根據需要設置事件

  1. preparedCallback:function(e){ this.event = '視頻連接成功'; this.duration = e.duration;}, 

 別忘了要在上面的data里給duration賦初值

(2)視頻的播放、暫停、結束、播放失敗的事件設置(舉例)

  1. startCallback:function(){ this.event = '視頻開始播放';}, 
  2.     pauseCallback:function(){ this.event = '視頻暫停播放'; }, 
  3.     finishCallback:function(){ this.event = '視頻播放結束';}, 
  4.     errorCallback:function(){ this.event = '視頻播放錯誤';}, 

(3)進度條的時間顯示

播放狀態的時間進度獲取 及 拖拽進度條的時間進度更新,先在data里賦初值

  1. seekingtime:''
  2. timeupdatetime:''

 然后在data下方添加事件代碼

  1. seekingCallback:function(e){ this.seekingtime = e.currenttime; }, 
  2.  timeupdateCallback:function(e){ this.timeupdatetime = e.currenttime;}, 

 (4)暫停及播放的點擊事件

設一個布爾型變量isStart,在data里賦初值true。當isStart為真時表示視頻是播放狀態,這時點擊就會觸發方法暫停pause,且isStart變為假;相反,當isStart為假時表示視頻是暫停狀態,這時點擊會促發==觸發方法播放start,且isStart變為真

  1. change_start_pause: function() {//暫?;虿シ?nbsp;
  2.        if(this.isStart) { 
  3.            this.$element('videoId').pause(); 
  4.            this.isStart = false
  5.        } else { 
  6.            this.$element('videoId').start(); 
  7.            this.isStart = true
  8.        } 
  9.    } 

 (5)全屏播放及退出

同(4),設一個布爾型變量并在data里賦初值

  1. isfullscreenchange: false 

真表示為全屏狀態,假表示非全屏狀態,若isfullscreenchange為真,則點擊放縮箭頭時會退出全屏,且isfullscreenchange變為假;若isfullscreenchange為假,則會進入全屏,且isfullscreenchange變為真

  1. change_fullscreenchange: function() {//全屏 
  2.         if(!this.isfullscreenchange) { 
  3.             this.$element('videoId').requestFullscreen({ screenOrientation : 'default' }); 
  4.             this.isfullscreenchange = true
  5.         } else { 
  6.             this.$element('videoId').exitFullscreen(); 
  7.             this.isfullscreenchange = false
  8.         } 
  9.     } 

以上幾步是添加視頻的簡單小分享,如果單純只添加音頻則相對簡單些,只需要 ①將路徑文件改為相應的音頻文件路徑, ②全屏事件及一些其他事件可以視情況作刪減。

結語

此外,因為循環播放事件只支持API6+,所以如果想循環播放的話,我想到的辦法是設一個布爾型變量,在要媒體源播放的生命周期里其值均為真,在要它結束播放的生命周期里比如onDestroy里其值為假,然后在播放結束事件finishCallback里,如果該布爾型變量為真,則觸發方法播放start。

辦法也還有好多種呢,以上就是我這次的小分享啦(●ˇ∀ˇ●)

文章相關附件可以點擊下面的原文鏈接前往下載

video_js.rar

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com

 

責任編輯:jianghua 來源: 鴻蒙社區
相關推薦

2011-01-19 11:17:20

2018-04-08 08:32:59

2021-02-22 08:19:49

js前端元素

2011-08-01 18:34:59

組策略編輯器管理模板

2022-08-12 08:38:52

FFmpegLinux命令

2020-12-15 09:26:20

LinuxVLAN命令

2022-12-25 17:49:55

Ubuntu媒體音頻Linux

2009-09-23 13:04:58

HibernateOracle sequ

2014-11-06 09:36:50

OVSvlan

2011-02-21 17:32:37

Vsftpd

2019-11-18 10:00:05

Linux桌面添加用戶

2011-02-21 14:10:33

QmailSMTP

2013-05-22 09:59:10

HTML 5音頻

2020-10-22 09:36:32

Ubuntu同步文件

2009-07-28 08:39:56

Linux應用軟件Linux應用

2022-04-27 08:55:01

Spring外部化配置

2011-01-21 10:50:53

Sendmail

2009-03-04 10:38:36

虛擬桌面模板桌面虛擬化Xendesktop

2009-09-25 11:06:38

Hibernate實例

2011-10-31 15:40:07

TouchpadAndroid
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品一区视频 | 欧美福利在线 | av免费成人 | 欧洲精品视频一区 | 欧美中文字幕 | 精品久久久久久亚洲综合网 | 国产精品一区二区久久久久 | 日本一区二区三区在线观看 | 国产精品1区2区3区 男女啪啪高潮无遮挡免费动态 | 欧美 日韩精品 | 欧美精品在线看 | 国产亚洲精品91 | 欧美中国少妇xxx性高请视频 | 国产成人艳妇aa视频在线 | 欧美理论片在线 | 国产粉嫩尤物极品99综合精品 | 日韩免费福利视频 | 日本高清视频在线播放 | 成人免费影院 | 久久男人 | 美女天天干 | 在线看片网站 | 在线视频中文字幕 | 在线观看亚洲欧美 | 亚洲欧美中文日韩在线v日本 | 欧美性猛片aaaaaaa做受 | 日韩精品久久一区二区三区 | 国产日韩久久 | 欧美日韩精品久久久免费观看 | 亚洲一区二区三区久久久 | www国产成人免费观看视频,深夜成人网 | 久久久精品综合 | 国产欧美性成人精品午夜 | 国产目拍亚洲精品99久久精品 | 久热免费在线 | 国产精品久久久久久久久久免费看 | 国产一区2区 | 自拍偷拍视频网 | 日日干日日操 | 福利视频网站 | 毛片a|