国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 西昌市| 明光市| 西贡区| 黑山县| 灯塔市| 莆田市| 承德市| 宁明县| 定结县| 阿克苏市| 韶关市| 桃源县| 盘山县| 海晏县| 连南| 罗源县| 盘锦市| 奉节县| 亳州市| 栾城县| 万宁市| 福州市| 高青县| 南阳市| 旬阳县| 宁化县| 桐城市| 百色市| 蓝山县| 大竹县| 平和县| 淮北市| 门源| 大连市| 罗江县| 怀安县| 南皮县| 龙江县| 张掖市| 横山县| 宣威市|