網頁中播放mp3文件:web_mp3

jopen 9年前發布 | 52K 次閱讀 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報錯

項目主頁:http://www.baiduhome.net/lib/view/home/1450009674903

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