1、簡要介紹MPlyer音樂播放器 MPlayer是一款開源多媒體播放器,以GNU通用公共許可證發佈。此款軟件可在各主流操做系統使用,例如Linux和其餘類Unix系統、Windows及Mac OS X系統。 2、在開發板實現MPlayer功能 具體如何實現mute 0 靜音,爲何用這個命令不用咱們作,咱們要作的是在開發板上獲取出界面後,按下相應按鈕實現相應的功能,即對這個命令的處理和調用。 3、思路 一、畫glade界面 二、主函數分爲父、子進程 父進程:開啓mplayer,用到execlp命令 子進程:(1) 搭GTK框架,建立背景窗口、佈局以及控件的獲取顯示; (2)寫上一首、下一首、暫停的回調函數(g_signal_connect); (3) 獲取歌曲目錄信息; DIR *dir; struct dirent *dirp; int i = 0; char *dd[100]={}; char ll[100]=""; if((dir=opendir("./song"))==NULL) { printf("Open dir song fail\n"); exit(1); } while((dirp=readdir(dir))!=NULL) { song_list[i]=(char*)malloc(sizeof(dirp->d_name)+1); strcpy(song_list[i],dirp->d_name); printf("%s\n",song_list[i]); i++; a.geshu=i; printf("%d\n",i); } closedir(dir); (4)音量鍵 一是if靜音仍是開啓,範圍,二是if設置音量大小(有命令) 這些作完算是簡單實現切歌功能 三、作歌曲名、歌手、歌曲當前位置、歌曲長度、播放進度顯示 線程1:不停發命令,打印到屏幕上,寫到父進程裏(while(1)循環命令),爲了避免讓打印到電腦上,要重定向到管道中(dup命令) 線程2:不停去管道中讀數據,作處理 (1)if語句作判斷 (2)sscanf作切割 (3)進行組包 (4)gtk_label_set_text設置label標籤的內容,箭頭指向(如:gtk_label_set_text(a->label_cur_time,buff)) 四、線程3歌詞顯示 (1)有一個歌詞文件 (2)歌詞文件解析,存鏈表(將時間與歌詞進行匹配) 重點:首先找到當前播放的歌,拿當前的時間與歌次作比較匹配信息