本文小編為大家詳細介紹“C語言如何實現音樂播放器”,內容詳細,步驟清晰,細節處理妥當,希望這篇“C語言如何實現音樂播放器”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
成都創新互聯公司成都網站建設按需網站開發,是成都網站營銷推廣公司,為純水機提供網站建設服務,有成熟的網站定制合作流程,提供網站定制設計服務:原型圖制作、網站創意設計、前端HTML5制作、后臺程序開發等。成都網站制作熱線:13518219792實例代碼如下:
#include <stdio.h> #include<dirent.h> #include<stdlib.h> #include<unistd.h> #include<string.h> typedef struct node_ node_t; struct node_{ char* name;//gequming node_t * prev; node_t * next; }; node_t *head = NULL; int first=1;//diyicibofnag node_t * cur =NULL;//dangqianbofang enum{STOP,PAUSE,PLAY}; int status = STOP; void List_init(void){ head = malloc(sizeof(node_t)); memset(head,0x00,sizeof(node_t)); head->next = head->prev=head; } void list_insert(const char* name){ node_t *p = malloc(sizeof(node_t)); memset(p,0x00,sizeof(node_t)); p->name = malloc(strlen(name)+1); strcpy(p->name,name); p->next = head->next; p->prev = head; head->next->prev = p; head->next = p; } int menu(void){ printf("*************menu************************\n"); printf("1. play/pause\n"); printf("2. next\n"); printf("3. prev\n"); printf("4. stop\n"); printf("5. exit\n"); printf("**************************************\n"); list_show(); int choose =4; do{ printf(" > "); scanf("%d",&choose); if(choose>=0&&choose<=4) break; printf("choose invalid\n"); while(getchar()!='\n'); }while(1); return choose; } void list_show(void){ node_t *p = head->next; while(p!=head){ printf("%s ",p->name); if(p==cur) printf("<<==cur"); printf("\n"); p = p->next; } } void load_music(const char * path){ DIR * pdir = opendir(path); if(pdir == NULL){ perror("opendir"); exit(1); } struct dirent * p = NULL; while((p=readdir(pdir))!=NULL){ if(p->d_name[0]=='.') continue; list_insert(p->d_name); } closedir(pdir); } void playPause(){ if(first==1){ char buf[1024] = {}; sprintf(buf,"madplay -o wav:- ./music/Music/%s 2> /dev/null | aplay 2>/dev/null &",cur->name); system(buf); first = 0; status = PLAY; }else{ if(status==PLAY){ system("killall -SIGSTOP aplay"); status = PAUSE; }else if(status==PAUSE){ system("killall -SIGCONT aplay"); status = PLAY; } } } void stop(){ system("killall -SIGKILL aplay"); first=1; } void next(){ stop(); cur = cur ->next; if(cur==head){ cur = cur->next; } playPause(); } void prev(){ stop(); cur = cur->prev; if(cur==head){ cur= cur->prev; } playPause(); } int main(int args,char * argv[]) { List_init(); load_music("./music/Music"); if(head->next!=head) cur = head->next; //printf("%s\n",cur->name); //list_show(); do{ int choose = menu(); switch(choose){ case 1: playPause(); break; case 2: next(); break; case 3: prev(); break; case 4: stop(); break; case 0: printf("thanks"); system("killall -SIGKILL aplay"); exit(0); break; default: break; //do nothing; } }while(1); return 0; }
實例效果圖片如下:
讀到這里,這篇“C語言如何實現音樂播放器”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注創新互聯行業資訊頻道。
本文標題:C語言如何實現音樂播放器-創新互聯
文章路徑:http://vcdvsql.cn/article28/epdjp.html
成都網站建設公司_創新互聯,為您提供網站設計公司、品牌網站設計、網站維護、定制網站、外貿建站、定制開發
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯