国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網(wǎng)站 > WEB開發(fā) > 正文

H5的audio對象,這些知識你了解嗎?

2024-04-27 15:13:54
字體:
供稿:網(wǎng)友

一個audio對象就是普通的dom對象 比其他的dom對象多出一些自己獨(dú)有的屬性方法和事件,下面介紹一下他常用的屬性、方法和事件

自己初步接觸html5的新屬性audio對象,做的一個簡易的音樂播放器,大家有興趣可以查看,一起討論學(xué)習(xí),有些功能尚未完善。。。敬請諒解!

模擬音樂播放器

//Audio的代碼格式<audio id="audio"> <source src="music/only.mp3"/> </audio > //獲取audio對象 var audio = $('audio').get(0);

Audio對象的屬性


屬性 描述
audio.volume (讀/寫) 音量
audio.src (讀/寫) 歌曲地址
audio.currentTime (讀/寫) 歌曲當(dāng)前已播放時長
audio.duration (讀) 歌曲的總長度
audio.paused (讀) 布爾類型 是否處于暫停狀態(tài)
audio.ended (讀) 布爾類型 歌曲是否已經(jīng)播放完畢

Audio對象的方法


方法 描述
audio.play() 讓歌曲開始播放
audio.pause() 讓歌曲開始暫停
audio.load() 重新加載音頻元素
audio.getStartDate() 返回新的 Date 對象,表示當(dāng)前時間線偏移量
audio.canPlayType() 檢查瀏覽器是否能夠播放指定的音頻類型
audio.fastSeek() 在音頻播放器中指定播放時間

Audio對象的事件

事件 描述
audio.oncanplay = fn() 當(dāng)歌曲下載完之后調(diào)用fn
audio.onvolumechange = fn() 當(dāng)audio.volume發(fā)生變換的時候調(diào)用fn
audio.onplay = fn() 歌曲開始播放之后調(diào)用fn
audio.onpause = fn() 歌曲暫停之后調(diào)用fn
audio.ontimeupdate = fn() 歌曲在播放的過程中會一直調(diào)用fn
audio.onended = fn() 一首歌曲播放完之后調(diào)用fn

事件驅(qū)動的編程模式


// 這里只設(shè)置數(shù)據(jù) $('音量div').on('click',function(e){ audio.volume = e.offsetX / e.offsetWidth; }) // 這里操作界面 $('audio').on('volumechange',function(){ let width = (this.currentTime/this.duration).toFixed(2)*100 + '%'; $('音量div').find('.inner').width(width); })

開始項(xiàng)目


使用一個html5模塊或其他js插件的一般步驟

查閱API快速定型API確定一個例子,開始制作

例子中如果依賴一些公開庫。

注意:不要下載到本地然后引用

如果我們想分享代碼給別人, 需要把所有我們下載的文件也拷貝給別人, 尤其當(dāng)依賴的公開庫多的情況下, 項(xiàng)目會變的很大, 上傳到版本控制系統(tǒng)也會變的很龐大。

我們通過其他方式來解決

使用cdn使用前端自動化工具 bowerbower initbower install jquery --save

會生成一個.bower文件 ,這樣任何人拿到項(xiàng)目之后,同樣去運(yùn)行bower install, 就會下載出來所有的依賴庫

node.js


var fs = require('fs');var minglinghang = require('child_遞歸遍歷文件夾

var fs = require('fs');var childProcess = require('child_process');// 遞歸遍歷文件夾 對其中的每一個文件調(diào)用 callbackvar walk = function(path, callback){ var files = fs.readdirSync(path); for( var i = 0; i< files.length; i++ ){ var newpath = path + files[i]; if ( fs.statSync(newpath).isFile() ){ callback(files[i],newpath); }else if(fs.statSync(newpath).isDirectory() ){ walk( newpath+'/' ) ; } }};// 遍歷./musics 文件夾 對其中的音樂文件 調(diào)用ffprobe 解析音樂數(shù)據(jù)var fileExtension = ['mp3', 'wav'];var database = [];walk('./musics/', function(name, path){ var extName = name.split('.').pop(); if( fileExtension.indexOf(extName) !== -1 ){ // 這個在windows下不生效 var path = path.trim().replace(//s/g,'// '); var data = childProcess.execSync('ffprobe -v quiet -print_format json -show_format ' + path); database.push( JSON.parse(data).format ); }});// 寫入js文件var js = 'var database = ' + JSON.stringify(database, null, 4);fs.writeFile('./scr
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 大厂| 仪征市| 宜川县| 神农架林区| 潞城市| 宿迁市| 图木舒克市| 金塔县| 兴安县| 龙岩市| 灵台县| 广南县| 兰西县| 绥德县| 莫力| 蕲春县| 屯昌县| 福泉市| 张掖市| 芒康县| 长顺县| 铁岭县| 清原| 衡水市| 阿合奇县| 兴国县| 宝鸡市| 南京市| 陆良县| 河曲县| 万安县| 玛沁县| 鄂伦春自治旗| 巴东县| 启东市| 新野县| 青田县| 乌兰县| 株洲县| 日喀则市| 通辽市|