一種獲取音樂播放器當(dāng)前播放歌曲名稱的方法與系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001 ]本發(fā)明屬于計(jì)算機(jī)技術(shù)領(lǐng)域,更具體地,涉及一種獲取音樂播放器當(dāng)前播放歌曲名稱的方法與系統(tǒng)。
【背景技術(shù)】
[0002]當(dāng)前市場(chǎng)上有多種音樂播放器,例如比較主流的有QQ音樂播放器、網(wǎng)易云音樂播放器、百度音樂播放器以及酷狗音樂播放器,各種播放器在播放音樂時(shí)可以在該播放器窗口中顯示當(dāng)前播放歌曲名稱以及歌詞。然而目前并沒有一種有效的方法能夠獲取計(jì)算機(jī)操作系統(tǒng)中所運(yùn)行音樂播放器當(dāng)前所播放的歌曲名稱。
【發(fā)明內(nèi)容】
[0003]針對(duì)現(xiàn)有技術(shù)的以上缺陷或改進(jìn)需求,本發(fā)明提供了一種獲取音樂播放器當(dāng)前播放歌曲名稱的方法與系統(tǒng),其目的在于獲取系統(tǒng)中所運(yùn)行音樂播放器當(dāng)前所播放的歌曲名稱,從而能夠進(jìn)一步在其他應(yīng)用程序窗口中顯示系統(tǒng)中當(dāng)前運(yùn)行音樂播放器所播放的歌曲名稱。
[0004]為實(shí)現(xiàn)上述目的,按照本發(fā)明的一個(gè)方面,本發(fā)明提供了一種獲取音樂播放器當(dāng)前播放歌曲名稱的方法,包括如下步驟:
[0005](I)確定計(jì)算機(jī)操作系統(tǒng)中當(dāng)前所運(yùn)行的音樂播放器的類型;
[0006](2)通過讀文件函數(shù)ReadFile的文件句柄動(dòng)態(tài)獲取當(dāng)前所運(yùn)行的音樂播放器正在讀取的文件,解析所述音樂播放器正在讀取的文件得到所述音樂播放器當(dāng)前所播放的歌曲名稱。
[0007]本發(fā)明的一個(gè)實(shí)施例中,所述步驟(2)中解析所述音樂播放器正在讀取的文件得到所述音樂播放器當(dāng)前所播放的歌曲名稱,具體為:
[0008]若所述音樂播放器為QQ音樂播放器,則按照“演唱者-歌曲名-XXX.qrc”的規(guī)則解析上述通過ReadFile函數(shù)獲取到的文件名,得到QQ音樂播放器中正在播放的歌曲名稱;
[0009]若所述音樂播放器是網(wǎng)易云音樂播放器,則通過解析計(jì)算機(jī)操作系統(tǒng)中網(wǎng)易云音樂播放器臨時(shí)安裝目錄下的\CloudMusic\webdata\file\history文件來獲取當(dāng)前播放的歌曲名稱;
[0010]若所述音樂播放器是百度音樂播放器,則按照“歌曲名.1re”的規(guī)則解析通過ReadFile函數(shù)獲取到的文件名,得到百度音樂播放器中正在播放的歌曲名稱;
[0011]若所述音樂播放器是酷狗音樂播放器,則按照“XXX-歌曲名”的規(guī)則解析通過ReadFile函數(shù)獲取到的文件名,得到酷狗音樂播放器中正在播放的歌曲名稱。
[0012]本發(fā)明的一個(gè)實(shí)施例中,所述確定系統(tǒng)中當(dāng)前所運(yùn)行的音樂播放器的類型為通過獲取計(jì)算機(jī)操作系統(tǒng)中所運(yùn)行的音樂播放器的進(jìn)程來判斷當(dāng)前是否有相應(yīng)的音樂播放器正在運(yùn)行,具體為:
[0013]如果計(jì)算機(jī)操作系統(tǒng)中運(yùn)行有qqmusic.exe進(jìn)程,則確定當(dāng)前所運(yùn)行的音樂播放器為QQ音樂播放器;
[0014]如果計(jì)算機(jī)操作系統(tǒng)中運(yùn)行有cloudmusic.exe進(jìn)程,則確定當(dāng)前所運(yùn)行的音樂播放器為網(wǎng)易云音樂播放器;
[0015]如果計(jì)算機(jī)操作系統(tǒng)中運(yùn)行有baidumusic.exe進(jìn)程,則確定當(dāng)前所運(yùn)行的音樂播放器為百度音樂播放器;
[0016]如果計(jì)算機(jī)操作系統(tǒng)中運(yùn)行有kugou.exe進(jìn)程,則確定當(dāng)前所運(yùn)行的音樂播放器為酷狗音樂播放器。
[0017]本發(fā)明的一個(gè)實(shí)施例中,所述方法還包括:在計(jì)算機(jī)操作系統(tǒng)的內(nèi)存中分配用于存儲(chǔ)獲取到的歌曲名稱的存儲(chǔ)區(qū)域;在獲取歌曲名稱之后,將所述獲取到的歌曲名稱存儲(chǔ)到上述存儲(chǔ)區(qū)域。
[0018]本發(fā)明的一個(gè)實(shí)施例中,所述方法還包括:將所述獲取到的歌曲名稱存儲(chǔ)到上述存儲(chǔ)區(qū)域之后,讀取所述存儲(chǔ)區(qū)域中的歌曲名稱,并通過Windows繪制接口函數(shù),在非當(dāng)前音樂播放器應(yīng)用程序中顯示所述歌曲名稱。
[0019]按照本發(fā)明的另一方面,還提供了一種獲取音樂播放器當(dāng)前播放歌曲名稱的裝置,包括播放器類型判斷模塊以及歌曲名稱獲取模塊,其中:
[0020]所述播放器類型判斷模塊,用于確定計(jì)算機(jī)操作系統(tǒng)中當(dāng)前所運(yùn)行的音樂播放器的類型;
[0021]所述歌曲名稱獲取模塊,用于通過讀文件函數(shù)ReadFiIe的文件句柄動(dòng)態(tài)獲取當(dāng)前所運(yùn)行的音樂播放器正在讀取的文件,解析所述音樂播放器正在讀取的文件得到所述音樂播放器當(dāng)前所播放的歌曲名稱。
[0022]本發(fā)明的一個(gè)實(shí)施例中,所述歌曲名稱獲取模塊解析所述音樂播放器正在讀取的文件得到所述音樂播放器當(dāng)前所播放的歌曲名稱具體為:
[0023]若所述音樂播放器為QQ音樂播放器,則按照“演唱者-歌曲名-XXX.qrc”的規(guī)則解析上述通過ReadFile函數(shù)獲取到的文件名,得到QQ音樂播放器中正在播放的歌曲名稱;
[0024]若所述音樂播放器是網(wǎng)易云音樂播放器,則通過解析計(jì)算機(jī)操作系統(tǒng)中網(wǎng)易云音樂播放器臨時(shí)安裝目錄下的\CloudMusic\webdata\file\history文件來獲取當(dāng)前播放的歌曲名稱;
[0025]若所述音樂播放器是百度音樂播放器,則按照“歌曲名.1re”的規(guī)則解析通過ReadFile函數(shù)獲取到的文件名,得到百度音樂播放器中正在播放的歌曲名稱;
[0026]若所述音樂播放器是酷狗音樂播放器,則按照“XXX-歌曲名”的規(guī)則解析通過ReadFile函數(shù)獲取到的文件名,得到酷狗音樂播放器中正在播放的歌曲名稱。
[0027]本發(fā)明的一個(gè)實(shí)施例中,所述播放器類型判斷模塊通過獲取計(jì)算機(jī)操作系統(tǒng)中所運(yùn)行的音樂播放器的進(jìn)程來判斷當(dāng)前是否有相應(yīng)的音樂播放器正在運(yùn)行,具體為:
[0028]如果計(jì)算機(jī)操作系統(tǒng)中運(yùn)行有qqmusic.exe進(jìn)程,則確定當(dāng)前所運(yùn)行的音樂播放器為QQ音樂播放器;
[0029]如果計(jì)算機(jī)操作系統(tǒng)中運(yùn)行有cloudmusic.exe進(jìn)程,則確定當(dāng)前所運(yùn)行的音樂播放器為網(wǎng)易云音樂播放器;
[0030]如果計(jì)算機(jī)操作系統(tǒng)中運(yùn)行有baidumusic.exe進(jìn)程,則確定當(dāng)前所運(yùn)行的音樂播放器為百度音樂播放器;
[0031]如果計(jì)算機(jī)操作系統(tǒng)中運(yùn)行有kugou.exe進(jìn)程,則確定當(dāng)前所運(yùn)行的音樂播放器為酷狗音樂播放器。
[0032]本發(fā)明的一個(gè)實(shí)施例中,所述裝置還包括歌曲名稱存儲(chǔ)模塊,所述歌曲名稱存儲(chǔ)模塊用于:在計(jì)算機(jī)操作系統(tǒng)的內(nèi)存中分配用于存儲(chǔ)獲取到的歌曲名稱的存儲(chǔ)區(qū)域;在所述歌曲名稱獲取模塊獲取歌曲名稱之后,將所述獲取到的歌曲名稱存儲(chǔ)到上述存儲(chǔ)區(qū)域。
[0033]本發(fā)明的一個(gè)實(shí)施例中,所述裝置還包括歌曲名稱顯示模塊,所述歌曲名稱顯示模塊用于:在所述歌曲名稱存儲(chǔ)模塊將所述獲取到的歌曲名稱存儲(chǔ)到上述存儲(chǔ)區(qū)域之后,讀取所述存儲(chǔ)區(qū)域中的歌曲名稱,并通過Windows繪制接口函數(shù),在非當(dāng)前音樂播放器應(yīng)用程序中顯示所述歌曲名稱。
[0034]本發(fā)明通過確定計(jì)算機(jī)操作系統(tǒng)中當(dāng)前所運(yùn)行的音樂播放器的類型,從而針對(duì)不同的音樂播放器類型,采取對(duì)應(yīng)的歌曲名稱獲取方法獲取音樂播放器當(dāng)前所播放的歌曲名稱,從而能夠進(jìn)一步在其他非當(dāng)前音樂播放器應(yīng)用程序中顯示所述歌曲名稱。從而解決了了現(xiàn)有技術(shù)中僅能在音樂播放器窗口中顯示當(dāng)前播放歌曲名稱而無法在其他非當(dāng)前音樂播放器應(yīng)用程序中顯示所述歌曲名稱的問題。
【附圖說明】
[0035]圖1是本發(fā)明實(shí)施例中一種獲取音樂播放器當(dāng)前播放歌曲名稱的方法流程圖;
[0036]圖2是本發(fā)明實(shí)施例中另一種獲取音樂播放器當(dāng)前播放歌曲名稱的方法流程圖;
[0037]圖3是本發(fā)明實(shí)施例中另一種獲取音樂播放器當(dāng)前播放歌曲名稱的裝置結(jié)構(gòu)圖;