網頁中播放mp3文件:web_mp3
網頁中播放mp3文件,HTML5 audio(PC:Chrome、IE9+、Edge、Opera;Mobile:UC、QQ、微信、百度、歐朋、Chrome);需要Flash支持(firefox、IE6-8)
一、功能:
在瀏覽器中播放mp3文件
二、范圍:
支持HTML5 Audio標簽,且支持播放MP3格式文件:Chrome、Opera、IE9+、Edge 安裝了Flash插件:Firefox、IE6-8 移動設備支持情況:UC、QQ、百度、微信、opera、chrome
三、使用方法(例):
var music = new Music('1.mp3', 'audio/mpeg', {'init' : v_init, 'play' : v_play, 'stop' : v_stop}, {'init' : e_init});
music.init(); 四、代碼結構:
1、瀏覽器判斷 2、Music對象 3、視圖、事件方法回調具體實現
五、對象、變量。方法介紹:
5.1、瀏覽器判斷
exports.name:瀏覽器類別 (chrome|firefox|ie|opera|edge等)
exports.version: ie獲取的是(6|7|8|9|10|11)大版本號,其余瀏覽器獲取具體版本號
5.2、Music對象
外部方法:
Music(url, type, viewCallback, eventCallback)
功能:
初始化Music對象
參數:
url: 音樂地址(本地|網絡地址)
type: 音樂類型 (目前僅支持audio|mpeg)
viewCallback: 視圖回調
eventCallback: 事件回調
init()
功能:
創建Audio或[Object|embed]對象,加載MP3資源
賦值給this.musicEl,并聲明this.musicEl的控制方法(play|stop|getPaused)
emit()
功能:
根據paused值,調用play()或stop()方法
內部方法:
createAudioPlayer()
功能:
創建Audio對象
createSwfPlayer()
功能:
創建object或embed對象
play()
功能:
播放音樂,并調用播放視圖回調
stop()
功能:
停止音樂,并調用停止視圖回調
5.3、公共方法
canPlayAudioMP3()
功能:
判斷瀏覽器能否使用audio標簽播放mp3文件
flashhtml(movieName, src, data)
功能:
根據瀏覽器版本創建不同的flash節點
參數:
moveieName :flash元素的id或name
src :調用的swf文件
data :傳遞的參數
addEvent(el, etype, fn)
功能:
兼容綁定事件(addEventListenerattachEvent)
參數:
el :綁定事件的元素
etpe :事件類型(click等)
fn :綁定的方法
m_console(msg)
功能:
支持console的情況下,在控制臺輸出信息
參數:
msg :需要控制臺輸出的信息
5.4、視圖回調(可自定義拓展)
v_init()
功能:
音頻對象初始化后,視圖回調
v_play()
功能:
音頻對象播放被觸發時,視圖回調
v_stop()
功能:
音頻對象停止被觸發時,視圖回調
e_init()
功能:
音頻對象初始化后,前端事件綁定 六、不足
仍有局限性,在不支持flash和audio標簽的瀏覽器上(如mobile firefox)無法播放
七、致謝
@DamonOehlman (thank you for browser.js) 一段很精簡的瀏覽器類型判斷的js代碼 @breily (thank you for jquery.player.js, show me a way that javasript communicate with actionsript ) 資料: http://zhidao.baidu.com/link?url=uqxSdCloRVdp-Hwkj46SGgnCl5h1v_JHpw8tTCbyq1yYT8CMEjOnOjvfHUAXpGFWKXiETKF585HyudAYbOQ1Ja 判斷瀏覽器是否支持audio標簽,且支持audio mp3播放 http://www.cnblogs.com/cos2004/p/3525111.html IE8以下,需要減少addCallback數量至3個以內,從而解決js報錯
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!