網頁中播放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 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!