王琿 陸偉



摘? 要: 由于受傳統音樂設備無法快速從大量歌曲中找到感興趣歌曲的影響,很多用戶已放棄了聽音樂的習慣。基于此,文中主要從三個方面完成移動音樂播放系統的整體設計,對移動音樂播放系統的關鍵技術進行研究,而后得到安卓手機音樂播放器的曲目推薦功能。實驗結果表明,該設計達到了預期目標,能為用戶推薦更多滿意的歌曲,使用戶重拾聽音樂的習慣。
關鍵詞: 音樂播放系統; 智能手機; 系統設計; 關鍵技術研究; 功能設計; 曲目推薦
中圖分類號: TN915.5?34? ? ? ? ? ? ? ? ? ? ? ? ? 文獻標識碼: A? ? ? ? ? ? ? ? ? ? ? ?文章編號: 1004?373X(2020)10?0006?04
Research on key technology of music player system of smart phone
WANG Hui, LU Wei
(Northwestern Polytechnical University, Xian 710072, China)
Abstract: Since the traditional music devices can′t quickly find interested songs from a large number of songs, many users have given up their habits of listening to music. Because of this reason, the overall design of the mobile music player system is completed from three aspects mainly, the key technologies of the mobile music playback system are researched, and then the track recommendation function of the Android phone music player is got. The experimental results show that this design achieves the expected goal, can recommend more satisfied songs for users, and enable users to regain their habit of listening to music.
Keywords: music player system; smart phone; system design; key technology research; function design; track recommend
0? 引? 言
伴隨著我國科技水平的提高,智能手機的推廣,人們的生活習慣正在慢慢發生改變。智能手機以其便捷、功能多樣化的優勢,獲得了廣大群眾的喜愛與推廣,加快了其發展態勢,特別是安卓手機。在該背景下,市面上各類品牌手機相繼涌現,譬如常見的華為、蘋果以及小米等,滿足了人們選擇的多樣化。隨著時代的迅猛發展,人們所面對的壓力也迎面而來,如生活中的、學習上的、工作上的等。為緩解這種壓力,智能手機的音樂播放軟件得到了重視與運用,成為人們解壓的一種方式[1?2]。智能手機音樂播放器與傳統的錄音機以及MP3等音樂設備相比有著明顯的優勢,如便捷性、多樣性等,最為突出的是傳統音樂播放設備不具備曲目推薦功能,無法為用戶提供感興趣的推薦界面。因此,為解決這一現狀,本文將對移動音樂播放系統的關鍵技術進行剖析,證實移動音樂播放器的智能化,使更多用戶融入到音樂的熏陶中,緩解生活、工作以及學習帶來的壓力。
1? 系統設計
本文主要從三個方面完成移動音樂播放系統的整體設計:
1) PC管理模塊設計,以實現管理員登錄帳號、查詢歌曲、修改歌詞、刪減曲目等后臺管理功能。
2) 服務器端模塊設計,以實現數據的接收與發送、數據庫的操作、曲目推薦等功能。
3) 設計音樂播放模塊,有效地實現IP的注冊以及登錄、本地或網絡音樂下載與播放等功能。
這三個模塊設計存在一定的關聯性,具體如下:PC管理模塊在對播放系統后臺信息起到管理作用的同時,還會在服務器端中存儲相關信息,而后由移動音樂播放器完成音樂的播放。移動音樂播放模塊主要的功能是處理用戶行為數據,生成用戶曲目矩陣。此時,借助有關推薦算法實現曲目列表的生成工作,并由服務器將曲目推薦列表傳輸至移動音樂播放模塊中并將其顯示出來。整體設計框架如圖1所示。
1.1? PC管理端功能設計
PC管理模塊設計旨在完成管理員登錄和后臺管理這兩種功能[3]。在此設計中,會涉及到4種不同的模塊信息:
1) 管理員登錄模塊。其核心的功能是實現管理員的登錄。管理員在輸入正確的密鑰后,就能夠進入到后臺的管理界面,進而實現對于音樂信息的管理。
2) 歌手信息管理模塊。管理者通過該模塊完成歌手信息的修改、添加以及查找,并根據歌手相關信息執行其應有的權限。
3) 專輯信息管理模塊。通過該模塊,管理者能夠實現對信息的修改、添加和查詢,也能夠根據歌手的相關信息完成專輯信息的修改、添加工作。
4) 歌曲信息管理模塊。管理者通過該模塊完成歌曲信息的修改、添加以及查找,并根據需要不斷完善歌曲信息。
由此可見,管理員在進入后臺管理系統后,可先執行修改、添加以及查找等歌手信息的操作,而后在執行第一項操作的基礎上,達到管理歌曲信息和專輯信息的目的。PC管理模塊處理流程如圖2所示。
1.2? 音樂資源服務功能設計
服務模塊設計旨在完成的功能有:
1) 能夠接收并發送音樂數據,即音樂數據接發功能;
2) 能操作音樂數據庫,即音樂數據庫操作功能;
3) 能向用戶推薦符合用戶喜好的曲目,即曲目推薦功能[4?6]。
同時,在此設計中,還會涉及到4種不同模塊的信息:
1) 數據接收模塊。通過該模塊完成服務器端的接收功能,在接收的同時也會打開傳輸的通道,便于數據信號的發送。
2) 數據發送模塊。通過該模塊實現與第一步的銜接,將已處理完善的數據信號發送出去,由移動客戶端或PC管理端負責接收。
3) 數據庫操作模塊。通過該模塊實現數據的完善工作,完善的方式有很多,如修改、添加、刪除等均可實現,主要還是需要根據實際需要著手操作。
4) 曲目推薦模塊。通過該模塊完成歌曲推薦的目的,推薦之前,對用戶行為記錄進行收集并處理,根據用戶的喜好生成曲目推薦列表,由數據發生模塊負責發送,最終將完整滿足用戶需求的曲目列表展現在用戶眼前。
總體而言,音樂數據首先由服務器端負責接收處理,接著將處理完善的結果反饋給發送端,形成一條雙向回路。然后,根據用戶的行為記錄完成曲目推薦列表的制作,最后將所完善的推薦曲目列表在客戶端進行顯示,為用戶提供便利服務。
1.3? 移動客戶端功能設計
實現安卓音樂播放器是移動客戶端模塊的最終目標[7]。在設計過程中,涉及到五大模塊:
1) 用戶注冊與登錄模塊。通過該模塊為用戶開通帳號注冊和登錄的渠道,用戶在輸入正確密鑰后,進入音樂播放系統,實現收集用戶播放行為的目的。
2) 用戶播放行為記錄模塊。顧名思義,該模塊主要的功能是收集和記錄用戶的行為,系統在收集結束后會對這類興趣記錄進行相應的處理,接著由服務器端完成這類興趣記錄的二次處理,而后生成曲目推薦列表,對應的流程圖如圖3所示。
3) 本地音樂播放模塊。該模塊主要的功能是對本地音樂進行播放,用戶通過點擊本地音樂按鍵獲取對應的曲目列表,接著選擇喜歡的曲目點擊播放即可。
4) 網絡音樂緩存與下載模塊。該模塊主要的功能是實現網絡音樂的緩存以及下載,使用戶通過連接服務器端的方式來獲取查看音樂數據的途徑,從而完成網絡音樂的緩存與下載工作。此外,還可保存到本地音樂當中,便于后續的播放。
5) 音樂可視化模塊。該模塊不但能夠讓用戶便捷地查看歌手信息、歌曲信息以及專輯信息等,還能實時觀察音樂播放時長、狀態以及歌詞等信息。
2? 系統實現
2.1? PC管理端實現
PC管理端主要的功能是實現后臺的管理以及實現管理員登錄。其中,對于管理員登錄功能來說,其需要輸入正確的賬號和密碼才能夠登錄到后臺,在后臺完成相應的管理工作。對后臺管理功能而言,可先從管理界面著手,以樹狀結構列表的形式將歌曲管理按鍵、歌手管理按鍵以及專輯管理按鍵在信息預覽窗口中表示出來,便于管理員的管理。當管理者點擊不同功能會呈現出對應的信息概況,如:點擊歌曲管理按鍵時,歌曲的時長、歌詞以及演唱者等信息均會一一展現出來;點擊歌手管理按鍵時,歌手姓名、性別以及ID等相關信息都會顯示在管理的主界面上。
2.2? 服務器端實現
移動客戶端或PC管理端發射出來的信號會傳輸至服務器,經服務器處理后得到的數據結果又會被傳輸回移動客戶端或PC管理端。實際上,服務器端的功能可通過以下幾個方面來完成。
2.2.1? 音樂數據收發功能
在收發數據中,分別指的是對于數據的接收和發送,雖然功能是完全相反的,但是都是通過服務器端線程來實現的。其中,服務器端線程由主線程和代理線程共同組成,其各自兼具著不同的任務。如主線程負責音樂請求信號的接收工作,為了讓發送工作順利實現,此時會借助代理線程對音樂信號進行相應的處理。在處理完善后,由服務器端將音樂請求信號反饋回發送端,即移動客戶端或PC客戶端。在此過程中,主線程接收音樂請求信號時需要通過3個步驟來實現:
1) 構建一個ServerThread線程;
2) 完成一個ServerScoket對象的定義工作;
3) 啟動線程。
若3個步驟均能一一實現,那么就可以表明音樂數據請求已接收成功,接著就可以進行下一階段的處理工作,即由代理線程負責實現。同樣,代理線程在處理音樂數據請求時,也不是一蹴而就的,需要通過以下幾個流程來實現:
1) 完成音樂請求數據輸入流和輸出流的構建工作;
2) 以字符的形式標注輸入和輸出流中的數據,并記錄到字符串中;
3) 將歌曲信息的獲取路徑保存至字符串中;
4) 處理音樂請求數據,并以字符串的形式表征處理結果,進而以流的方式將音樂請求數據反饋回請求發送端,即移動客戶端或PC客戶端。
音樂數據收發模塊的實現主要是通過如下代碼:
din=new DataInputStream(sc.getInputStream());
dout=new DataInputStream(sc.getOutputStream());
msg=din.readUTF();
if(msg.starts With(Constant.GetSongList));
ls=DBUtil.getSongList();
mess=StrListChange.ListToStr(ls);
dout.writeUTF(mess);
else if(msg.starts With(Constant.GetAlbumList)){…}
2.2.2? 音樂數據庫操作功能
數據庫操作功能主要是實現了如下功能:對于數據的修改和添加;對于數據的查找和刪除。本文數據庫操作實現中借助DB處理類來實現,對應的處理流程如下:
1) 編寫連接方法,實現結構集的構建;
2) 對收集檢索結果列表進行相應的命名,并完成SQL語句的無誤編纂工作,而后將無誤的SQL語句傳輸至數據庫中運行,為避免對運行造成干擾,需要斷開有關接口和結果集的連接;
3) 回到對應的頁面窗口。
音樂數據庫操作模塊的實現主要是通過如下代碼:
Connection con=getConnection();
Statement st=null;
ResultSet rs=null;
List
Try{
st=con.createStatement();
String sql="select SongName,SingerName,Album,Lyric,FileName from Song where singerName =""+ info+""or SongName=""+info+""or Album=""+ info+"";";
rs=st.executeQuery(sql);
while(rs.next()){
String[] str=new String[5];
for(int i=0;i<5;i++){
str[i]=rs.getString(i+l);
System.out.println(i+"== "+str[i]);}
lstr.add(str)
}catch(Exception e){…}
2.2.3? 曲目推薦
在本文研究的系統中,曲目推薦功能是在物品和用戶結合的推薦算法基礎上實現的。該算法需要通過3個步驟來完成曲目推薦列表的生成工作。
1) 通過服務器端完成用戶興趣數據的接收與處理,獲取用戶曲目矩陣;
2) 借助用戶和物品對應的協同過濾算法,完成用戶對物品的熱衷度計算;
3) 線性加權處理步驟2)中的兩種協同過濾算法,以得到聯合推薦算法,并借助該算法進行相應的計算工作,對計算得到的結果進行相應的排序,進而得到曲目推薦列表。通過如下代碼實現:
for(int i=0;i Joint_int[i]=a*U ser_int[i]+(1?a)*Item_int[i]; Arrays.sort(Joint_int); 2.3? 移動客戶端實現 移動客戶端主要實現的功能有:用戶登錄與注冊;音樂的緩存和下載;本地音樂的獲取和播放;播放行為記錄;音樂可視化。 其中,用戶播放行為記錄功能實現的前提是用戶在該移動播放系統中登錄。不同界面窗口可將不同的功能表現出來,通過移動端客戶端的主界面就能實現本地音樂的獲取與播放。通過加入歌單界面、音樂評分界面等可完成音樂的播放與記錄。通過曲目推薦界面可完成音樂的可視化操作,在此基礎上,用戶可對網絡音樂進行緩存和下載。 在移動客戶端主界面窗口中,可通過跳轉界面的方式來滿足用戶不同的功能需要。如用戶在點擊音樂播放界面窗口后,用戶播放行為和音樂播放的兩大功能將得以實現,用戶根據自身需要和喜好,點擊不同的按鍵可轉入所需的界面,從而表現出用戶不同的行為。點擊加入歌單界面窗口后,用戶可根據自身喜好在歌單列表中添加或刪減歌曲,需要時,還可選擇收藏按鍵,完成歌曲的收藏操作,進而保存至服務器端數據庫中。點擊“我喜歡”界面窗口后,用戶可根據自身需要對歌曲進行標注,標注后的歌曲會自動添加到喜歡的列表中,便于用戶后續的查詢與播放。進入音樂分享界面可實現音樂的共享功能。點擊“分享”按鍵可將正在播放的歌曲通過微信、QQ等通信方式分享給他人,分享后的歌曲保存到服務端數據庫中。打開推薦界面可實現歌單推薦功能,同樣可通過通信軟件向好友推薦動人的歌曲,與之分享。此外,列表中會向用戶推薦六類可能喜歡的曲目,供用戶選擇,若用戶都不喜歡還可點擊“換一批”按鍵對當前推薦的曲目進行更換。 3? 結? 語 綜上所述,本文主要從三方面入手展開設計與實現,包括PC管理端、移動客戶端以及服務器端。其中,對PC管理端而言,不僅實現了對于PC端軟件的管理,還實現了管理員登錄功能和各方面的管理功能,如對歌手、歌曲、專輯的信息管理等。對移動客戶端而言,移動音樂播放軟件的實現是一方面,另一方面還實現了用戶各方面的權限,主要包括網絡音樂的下載和緩存、用戶賬號的登錄和注冊以及本地音樂的播放和獲得。而對服務器端而言,不僅實現了服務器端軟件下載,而且還實現了音樂數據庫的控制、曲目推薦以及音樂數據的接發功能等。通過該研究,不但為安卓音樂播放軟件的普及提供了正向推動力,而且也迎合了5G推廣的浪潮。 參考文獻 [1] 張馨元.基于Android的音樂圖片播放系統的設計與實現[J].科技視界,2019(1):217?219. [2] 王詠梅.基于Android平臺的音樂播放軟件的設計與開發[J].電腦知識與技術,2018,14(30):82?83. [3] 苗靜,楊帆,潘國峰.嵌入式智能音樂播放系統的設計與實現[J].聲學技術,2017,36(4):357?362. [4] 余森林,唐旻圓.基于要素特點和需求分析的音樂識別軟件服務設計研究[J].設計,2018(20):131?133. [5] 李卓遠,曾丹,張之江.基于協同過濾和音樂情緒的音樂推薦系統研究[J].工業控制計算機,2018,31(7):127?128. [6] 盧宏偉.基于Android平臺的在線播放器設計與實現[J].電腦知識與技術,2011,7(19):4591?4593. [7] 劉佳.基于ASP技術的音樂播放系統設計與研究[J].電子設計工程,2018,26(15):19?22. [8] 張小琴,張庚.基于Android平臺的音樂播放器設計與實現[J].軟件,2018,39(9):113?116. [9] 劉瑾.基于Android平臺的音樂播放器的實現[J].數字技術與應用,2018,36(8):156. [10] 吳清福,涂淑珍,馬奕.Web端音樂播放器的設計與實現[J].福建電腦,2018,34(2):56?57.