c語言MP3播放器
#include<stdio.h> #include<string.h> #include<stdlib.h> #include <afx.h>//CString的標頭檔案 #include<time.h>//使用當前時鐘做種子 #include <windows.h> #include<mmsystem.h> #include <conio.h> #pragma comment(lib,"WINMM.LIB") void jiemian() { printf("|-----------------------------------------------------|\n"); printf("|1-->順序播放 **2-->隨機播放 **3-->單曲迴圈播放|\n"); printf("|-----------------------------------------------------|\n"); printf("| |\n"); printf("|4-->切換指定歌曲 **5-->暫停 **6-->播放 |\n"); printf("|-----------------------------------------------------|\n"); printf("| |\n"); printf("|7-->上一首 **8-->下一首 **9-->停止 |\n"); printf("|-----------------------------------------------------|\n"); printf("| |\n"); printf("|10-->快進 **11-->後退 |\n"); printf("|-----------------------------------------------------|\n"); } /*void play(int n) { MCIERROR re; //FILE *fp; CString fe; char song[30]; printf("請輸入歌名: "); fflush(stdin); gets(song);//輸入曲目名稱 fe.Format("open %s alias beatit",song); re=mciSendString(TEXT(fe.GetBuffer(fe.GetLength())),0,0,0);//TEXT是巨集變數,alias不能少 printf("\n"); mciSendString(TEXT("play beatit"),0,0,0); //mciSendString("play D:\\KwDownload\\song\\3.mp3",NULL,0,NULL); Sleep(10000000); }*/ /*BOOL CMyDlg::OnInitDialog() { CDialog::OnInitDialog(); CFile file1("歌曲列表.lw",CFile::modeReadWrite|CFile::modeCreate); if(file1.m_hFile==NuLL) { CFile file1("歌曲列表。lw",CFile::modeReadWrite|CFile::modeNoTruncate); } else { while(mpd.title!=NULL) { file1.Read(&mpd,sizeof(mpd)); int nRow=m_list.InsertItem(1,mpd,title); m_list.SetItemText(nRow,1,mpd,arti); if(mpd.head && "TAG") { CString str="MP3"; m_list.SetItemText(nRow,2,str); } } file.Close; } }*/ /*void pause(int n) { mciSendString("pause movie",NULL,0,NULL); }*/ int NUMBER()//獲取歌曲總數量 { int i=0; FILE *fp;//指標指向檔案; char SongName[1024]; fp=fopen("列表.txt","r+"); if(fp==NULL) { printf("open failed\n"); exit(-1); } while(!feof(fp)) { fgets(SongName,1024,fp);//將檔案內的歌名逐行輸入到SongName中儲存; i++; } return i; } void PlayList()//開啟播放列表 { FILE *fp; char SongName[1024]; int i=0; fp=fopen("列表.txt","r+"); if(fp==NULL) { printf("open failed\n"); exit(-1); } while(!feof(fp)) { fgets(SongName,1024,fp); i++; printf("%d--%s",i,SongName); } printf("\n"); } void PlayNext(int count,int gn)//播放下一首 { MCIERROR def;//對函式進行宣告,通過API函式mciSendString傳遞給MCI CString str;//一種資料型別,能簡化MFC的很多操作 網上程式碼複製,看不懂; FILE *fp; long hour; void PlayPast(int count,int gn);//播放上一首 void playsernumber();//指定序號播放 void RandomPlay();//隨機播放 int i=0,len,k,s; char song[1024]={0},sheet[1024]; hour=clock(); s=NUMBER();//將歌曲總數量賦值給s,方便下面使用; fp=fopen("列表.txt","r+");//以只讀的方式開啟文字文件 if(fp==NULL) { printf("open failed!"); exit(-1); } while(!feof(fp)) { //j++; fgets(sheet,1024,fp); i++; if(i==count) break; } len=strlen(sheet);//將整首歌名的長度賦值給len,方便下面將歌名傳遞給陣列song[]; fflush(stdin);//清除讀寫緩衝區,需要立即把輸出緩衝區的資料stdin進行物理寫入; if(i==s)//判斷是不是最後一首歌,最後一行歌名如果有回車,就把回車去掉; { for(k=0;k<len;k++) { song[k]=sheet[k]; } } else if(i<s) { for(k=0;k<len-1;k++) song[k]=sheet[k]; } str.Format("open %s alias Mysong",song);//將歌曲開啟 def=mciSendString(TEXT(str.GetBuffer(str.GetLength())),0,0,0);//這個函式是為一個CString物件重新獲取其內部字元緩衝區的指標, //返回的LPTSTR為非const的,從而允許直接修改CString中的內容。 mciSendString(TEXT("play Mysong"),0,0,0);//進行歌曲播放;這三句都是網上覆制的程式碼 //Sleep(240000); while(scanf("%d",&gn)!=EOF) { if(gn==5)//歌曲暫停 { mciSendString(TEXT("pause Mysong"),0,0,0); printf("successful\n"); } else if(gn==6)//歌曲繼續播放 { mciSendString(TEXT("resume Mysong"),0,0,0); printf("successful\n"); } else if(gn==7)//播放上一首 { mciSendString (TEXT("close Mysong"), 0, 0, 0); count=count-1; if(count<1) count=s; printf("successful\n"); PlayPast(count,gn);//播放上一首 } else if(gn==8)//播放下一首 { mciSendString (TEXT("close Mysong"), 0, 0, 0);//先將正在播放的歌曲關閉 count=count+1; if(count>s) count=1; printf("successful\n"); PlayNext(count,gn); } else if(gn==9)//停止播放 { mciSendString(TEXT("stop Mysong"), 0, 0, 0); mciSendString (TEXT("close Mysong"), 0, 0, 0); printf("successful\n"); } else if(gn==4)//指定歌曲進行播放 { mciSendString (TEXT("close Mysong"), 0, 0, 0); printf("successful\n"); playsernumber(); } else if(gn==3)//單曲迴圈播放 { mciSendString(TEXT("play Mysong repeat"), 0, 0, 0); printf("successful\n"); } else if(gn==2)//隨機播放 { mciSendString (TEXT("close Mysong"), 0, 0, 0); RandomPlay(); } else if(gn==10)//快進 { hour=hour+5000; str.Format("seek Mysong to %ld",hour); mciSendString(TEXT(str.GetBuffer(str.GetLength())),0,0,0); mciSendString(TEXT("play Mysong"),0,0,0); printf("successful\n"); } else if(gn==11)//快退 { hour=hour-5000; if(hour<0) hour=0; str.Format("seek Mysong to %ld",hour); mciSendString(TEXT(str.GetBuffer(str.GetLength())),0,0,0); mciSendString(TEXT("play Mysong"),0,0,0); printf("successful\n"); } } Sleep(300000); } void PlayPast(int count,int gn)//播放上一首 { MCIERROR def;//對函式進行宣告,通過API函式mciSendString傳遞給MCI CString str;//一種資料型別,能簡化MFC的很多操作 網上程式碼複製,看不懂; FILE *fp; int i=0,len,k,s; long hour; char song[1024]={0},sheet[1024]; void PlayNext(int count,int gn);//播放下一首 void playsernumber();//指定序號播放 void RandomPlay();//隨機播放 hour=clock();//c++裡面的計時函式 s=NUMBER();//將歌曲總數量賦值給s,方便下面使用; fp=fopen("列表.txt","r+"); if(fp==NULL) { printf("open failed!"); exit(-1); } while(!feof(fp)) { //j++; fgets(sheet,1024,fp); i++; if(i==count) break; } len=strlen(sheet);//將整首歌名的長度賦值給len,方便下面將歌名傳遞給陣列song[]; fflush(stdin);//清除讀寫緩衝區,需要立即把輸出緩衝區的資料stdin進行物理寫入 if(i==s) { for(k=0;k<len;k++) { song[k]=sheet[k]; } } else if(i<s) { for(k=0;k<len-1;k++) song[k]=sheet[k]; }//printf("%s %s",song,sheet); //song[k+1]='\0'; str.Format("open %s alias Mysong",song);//將歌曲開啟 def=mciSendString(TEXT(str.GetBuffer(str.GetLength())),0,0,0);//這個函式是為一個CString物件重新獲取其內部字元緩衝區的指標, //返回的LPTSTR為非const的,從而允許直接修改CString中的內容。 mciSendString(TEXT("play Mysong"),0,0,0);//歌曲播放 //Sleep(240000); while(scanf("%d",&gn)!=EOF) { if(gn==5)//暫停 { mciSendString(TEXT("pause Mysong"),0,0,0); printf("successful\n"); } else if(gn==6)//暫停後播放 { mciSendString(TEXT("resume Mysong"),0,0,0); printf("successful\n"); } else if(gn==7)//播放上一首 { mciSendString (TEXT("close Mysong"), 0, 0, 0); count=count-1; if(count<1) count=s; printf("successful\n"); PlayPast(count,gn);//播放上一首 } else if(gn==8)//播放下一首 { mciSendString (TEXT("close Mysong"), 0, 0, 0); count=count+1; if(count>s) count=1; printf("successful\n"); PlayNext(count,gn); } else if(gn==9)//停止播放 { mciSendString(TEXT("stop Mysong"), 0, 0, 0); mciSendString (TEXT("close Mysong"), 0, 0, 0); printf("successful\n"); } else if(gn==4)//隨機播放 { mciSendString (TEXT("close Mysong"), 0, 0, 0); printf("successful\n"); playsernumber(); } else if(gn==3)//單曲迴圈 { mciSendString(TEXT("play Mysong repeat"), 0, 0, 0); printf("successful\n"); } else if(gn==2)//隨機播放 { mciSendString (TEXT("close Mysong"), 0, 0, 0); RandomPlay(); } else if(gn==10)//快進 { hour=hour+5000; str.Format("seek Mysong to %ld",hour); mciSendString(TEXT(str.GetBuffer(str.GetLength())),0,0,0); mciSendString(TEXT("play Mysong"),0,0,0); printf("successful\n"); } else if(gn==11)//快退 { hour=hour-5000; if(hour<0) hour=0; str.Format("seek Mysong to %ld",hour); mciSendString(TEXT(str.GetBuffer(str.GetLength())),0,0,0); mciSendString(TEXT("play Mysong"),0,0,0); printf("successful\n"); } } Sleep(300000); } void playsernumber() //指定序號播放 { MCIERROR def; FILE *fp; long hour; char song[1024]={0}; char sheet[1024]; //歌單; CString str; int j=0,k=0,count=0,num,len,gn,n; void RandomPlay();//隨機播放 hour=clock(); n=NUMBER(); //printf("%d\n",n); fp=fopen("列表.txt","r+"); printf("請輸入歌前面指定數字進行播放\n"); scanf("%d",&num); if(fp==NULL) { printf("open failed!"); exit(-1); } while(!feof(fp)) { //j++; fgets(sheet,1024,fp); count++; if(count==num) break; } len=strlen(sheet); fflush(stdin); if(count==n) { for(k=0;k<len;k++) { song[k]=sheet[k]; } } else if(count<n) { for(k=0;k<len-1;k++) song[k]=sheet[k]; } str.Format("open %s alias Mysong",song); def=mciSendString(TEXT(str.GetBuffer(str.GetLength())),0,0,0); mciSendString(TEXT("play Mysong"),0,0,0); while(scanf("%d",&gn)!=EOF) { if(gn==5) { mciSendString(TEXT("pause Mysong"),0,0,0); printf("successful\n"); } else if(gn==6) { mciSendString(TEXT("resume Mysong"),0,0,0); printf("successful\n"); } else if(gn==7) { mciSendString (TEXT("close Mysong"), 0, 0, 0); count=count-1; if(count<1) count=n; printf("successful\n"); PlayPast(count,gn);//播放上一首 } else if(gn==8) { mciSendString (TEXT("close Mysong"), 0, 0, 0); count=count+1; if(count>n) count=1; printf("successful\n"); PlayNext(count,gn); } else if(gn==9) { mciSendString(TEXT("stop Mysong"), 0, 0, 0); mciSendString (TEXT("close Mysong"), 0, 0, 0); printf("successful\n"); } else if(gn==4) { mciSendString (TEXT("close Mysong"), 0, 0, 0); printf("successful\n"); playsernumber(); } else if(gn==3) { mciSendString(TEXT("play Mysong repeat"), 0, 0, 0); printf("successful\n"); } else if(gn==2) { mciSendString (TEXT("close Mysong"), 0, 0, 0); RandomPlay(); } else if(gn==10)//快進 { hour=hour+5000; str.Format("seek Mysong to %ld",hour); mciSendString(TEXT(str.GetBuffer(str.GetLength())),0,0,0); mciSendString(TEXT("play Mysong"),0,0,0); printf("successful\n"); } else if(gn==11)//快退 { hour=hour-5000; if(hour<0) hour=0; str.Format("seek Mysong to %ld",hour); mciSendString(TEXT(str.GetBuffer(str.GetLength())),0,0,0); mciSendString(TEXT("play Mysong"),0,0,0); printf("successful\n"); } } Sleep(300000); } void RandomPlay() //隨機播放 { MCIERROR def; FILE *fp; long hour; char song[1024]={0}; char sheet[1024]; //歌單; CString str; int j=0,k=0,count=0,num,len,gn,n; hour=clock(); n=NUMBER(); //printf("%d\n",n); fp=fopen("列表.txt","r+"); srand( (unsigned)time( NULL ) ); num=rand()%n+1; if(fp==NULL) { printf("open failed!"); exit(-1); } while(!feof(fp)) { //j++; fgets(sheet,1024,fp); count++; if(count==num) break; } len=strlen(sheet); fflush(stdin); if(count==n) { for(k=0;k<len;k++) { song[k]=sheet[k]; } } else if(count<n) { for(k=0;k<len-1;k++) song[k]=sheet[k]; } str.Format("open %s alias Mysong",song); def=mciSendString(TEXT(str.GetBuffer(str.GetLength())),0,0,0); mciSendString(TEXT("play Mysong"),0,0,0); while(scanf("%d",&gn)!=EOF) { if(gn==5) { mciSendString(TEXT("pause Mysong"),0,0,0); printf("successful\n"); } else if(gn==6) { mciSendString(TEXT("resume Mysong"),0,0,0); printf("successful\n"); } else if(gn==7) { mciSendString (TEXT("close Mysong"), 0, 0, 0); count=count-1; if(count<1) count=n; printf("successful\n"); PlayPast(count,gn);//播放上一首 } else if(gn==8) { mciSendString (TEXT("close Mysong"), 0, 0, 0); count=count+1; if(count>n) count=1; printf("successful\n"); PlayNext(count,gn); } else if(gn==9) { mciSendString(TEXT("stop Mysong"), 0, 0, 0); mciSendString (TEXT("close Mysong"), 0, 0, 0); printf("successful\n"); } else if(gn==4) { mciSendString (TEXT("close Mysong"), 0, 0, 0); printf("successful\n"); playsernumber(); } else if(gn==3) { mciSendString(TEXT("play Mysong repeat"), 0, 0, 0); printf("successful\n"); } else if(gn==2) { mciSendString (TEXT("close Mysong"), 0, 0, 0); RandomPlay(); } else if(gn==10)//快進 { hour=hour+5000; str.Format("seek Mysong to %ld",hour); mciSendString(TEXT(str.GetBuffer(str.GetLength())),0,0,0); mciSendString(TEXT("play Mysong"),0,0,0); printf("successful\n"); } else if(gn==11)//快退 { hour=hour-5000; if(hour<0) hour=0; str.Format("seek Mysong to %ld",hour); mciSendString(TEXT(str.GetBuffer(str.GetLength())),0,0,0); mciSendString(TEXT("play Mysong"),0,0,0); printf("successful\n"); } } Sleep(300000); } void SequentialPlay() //順序播放 { MCIERROR re; FILE *fp; long here; char song[1024]={0}; char sheet[1024],slen[30]={0}; //歌單; long int llen; CString fe; int j=0,k=0,count=0,num,len,n; void RandomPlay();//隨機播放 void playsernumber(); //指定序號播放 here=clock(); n=NUMBER(); //printf("%d\n",n); fp=fopen("列表.txt","r+"); //printf("請輸入歌前面指定數字進行播放\n"); num=1; if(fp==NULL) { printf("open failed!"); exit(-1); } while(!feof(fp)) { //j++; fgets(sheet,1024,fp); count++; if(count==num) break; } len=strlen(sheet); fflush(stdin); if(count==n) { for(k=0;k<len;k++) { song[k]=sheet[k]; } } else if(count<n) { for(k=0;k<len-1;k++) song[k]=sheet[k]; } fe.Format("open %s alias Mysong",song); re=mciSendString(TEXT(fe.GetBuffer(fe.GetLength())),0,0,0); mciSendString(TEXT("play Mysong"),0,0,0); mciSendString(TEXT("status Mysong length"),slen,255,0);//網上參考 llen=strtol(slen,0,0); Sleep(llen); mciSendString (TEXT("close Mysong"), 0, 0, 0); while(n--) { num++; if(fp==NULL) { printf("open failed!"); exit(-1); } while(!feof(fp)) { //j++; fgets(sheet,1024,fp); count++; if(count==num) break; } len=strlen(sheet); fflush(stdin); if(count==n) { for(k=0;k<len;k++) { song[k]=sheet[k]; } } else if(count<n) { for(k=0;k<len-1;k++) song[k]=sheet[k]; } fe.Format("open %s alias Mysong",song); re=mciSendString(TEXT(fe.GetBuffer(fe.GetLength())),0,0,0); mciSendString(TEXT("play Mysong"),0,0,0); mciSendString(TEXT("status Mysong length"),slen,255,0);//網上參考 llen=strtol(slen,0,0); Sleep(llen); mciSendString (TEXT("close Mysong"), 0, 0, 0); } /*while(scanf("%d",&gn)!=EOF) { if(gn==5) { mciSendString(TEXT("pause Mysong"),0,0,0); printf("successful\n"); } else if(gn==6) { mciSendString(TEXT("resume Mysong"),0,0,0); printf("successful\n"); } else if(gn==7) { mciSendString (TEXT("close Mysong"), 0, 0, 0); count=count-1; if(count<1) count=n; printf("successful\n"); PlayPast(count,gn);//播放上一首 } else if(gn==8) { mciSendString (TEXT("close Mysong"), 0, 0, 0); count=count+1; if(count>n) count=1; printf("successful\n"); PlayNext(count,gn); } else if(gn==9) { mciSendString(TEXT("stop Mysong"), 0, 0, 0); mciSendString (TEXT("close Mysong"), 0, 0, 0); printf("successful\n"); } else if(gn==4) { mciSendString (TEXT("close Mysong"), 0, 0, 0); printf("successful\n"); playsernumber(); } else if(gn==3) { mciSendString(TEXT("play Mysong repeat"), 0, 0, 0); printf("successful\n"); } else if(gn==2) { mciSendString (TEXT("close Mysong"), 0, 0, 0); RandomPlay(); } else if(gn==10)//快進 { here=here+50000; fe.Format("seek Mysong to %ld",here); mciSendString(TEXT(fe.GetBuffer(fe.GetLength())),0,0,0); mciSendString(TEXT("play Mysong"),0,0,0); printf("successful\n"); } else if(gn==11)//快退 { here=here-50000; if(here<0) here=0; fe.Format("seek Mysong to %ld",here); mciSendString(TEXT(fe.GetBuffer(fe.GetLength())),0,0,0); mciSendString(TEXT("play Mysong"),0,0,0); printf("successful\n"); } } Sleep(300000);*/ } int main() { int n; int num; jiemian(); printf("\n"); NUMBER(); PlayList(); num=NUMBER(); while(scanf("%d",&n)!=EOF) { if(n==4) { jiemian(); playsernumber(); } else if(n==2) { mciSendString (TEXT("close Mysong"), 0, 0, 0); RandomPlay(); } else if(n==1) { jiemian(); SequentialPlay(); } /*else if(n==1) { mciSendString (TEXT("close Mysong"), 0, 0, 0); SequentialPlay(); }*/ } return 0; } /*#include<stdio.h> #include <windows.h> #include <conio.h> int main() { printf("如果你三秒鐘之內什麼也不輸入,我就輸出-1。\n"); Sleep(3000); if(!_kbhit()) printf("-1\n"); else printf("輸入了%c", getchar()); return 0; }*/ /*#include <stdlib.h> #include <stdio.h> #include <time.h> void main( ) {int i; srand( (unsigned)time( NULL ) ); for( i = 0; i < 10;i++ ) printf( "%d\n", rand()%100+1); }*/
歌曲必須與程式語言放在同一個資料夾內 歌曲名需要自己手動輸入到文字文件中
相關推薦
c語言MP3播放器
#include<stdio.h> #include<string.h> #include<stdlib.h> #include <afx.h>//CString的標頭檔案 #include<time.h>//使用
Console MP3播放器 for C++
C++控制檯版Mp3 實現Mp3基本功能:播放 、選擇、 切換歌曲 啟動掃描播放列表檔案 掃描磁碟檔案(1、新增歌曲。2、重新掃描)存入播放列表檔案, 實現配置引數儲存 . . . .
安卓MP3播放器開發實例(3)之進度條和歌詞更新的實現
tac run detail datetime style mem poll() arc call 上一次談了音樂播放的實現,這次說下最復雜的進度條和歌詞更新。因為須要在播放的Activity和播放的Service間進行交互,所以就涉及了Activi
工業串口觸摸屏開發制作mp3播放器,單片機或PLC通過串口控制播放MP3音頻方法
百分比 通訊 觸摸 參與 blog 設備 並行 周期 運行 工業串口觸摸屏開發制作mp3播放器,單片機或PLC通過串口控制播放MP3音頻方法 在工業控制系統中將音樂或語音MP3的美和工控結合在一起,給人以賞心悅目的感受。隨著工業控制的發展,對工業控制的控制要求也越來越高,使
用arm-linux-gnueabihf移植MP3播放器libmad-0.15.1b的時候出現錯誤提示
移植 else /dev/null -- b- line .com ibm fail diff --git a/package/libmad/libmad-0.15.1b-thumb2-fixed-arm.patch b/package/libmad/libmad-0.15
拋開flash,自己開發實現C++ RTMP直播播放器
眾所周知,RTMP是以flash為客戶端播放器的直播協議,主要應用在B/S形式的場景中。本人研究並用C++開發實現了RTMP直播流協議的播放器(延遲極低,內網可以做到百毫秒,目前已經實現PC端和Android端),結合之前做的RTMP直播採集端,可以將RTMP協議完全擴充套件到C/S形式
基於C語言的編碼器(光耦)程式設計之C程式碼解析(二)
程式碼需要一個.c文件和一個.h文件。 .h文件主要配置編碼器相關引數 #define OptoKnobNumber 2 /* 旋鈕個數配置 */ #define _01_SH
c語言文字編輯器
#include<stdio.h> #include<conio.h> #include<string.h> #include<stdint.h> #include<ctype.h> # define LEN sizeof(struct Lnode)
Android練習專案 Mp3播放器實現 歌詞同步播放(四)
其實到後面就需要我們如何顯示歌詞,對於歌詞的同步顯示還是比較好實現的,主要通過判斷當前播放的時間和每個結點的歌詞的時間的大小,來同步對應到結點的資料,現在就是如何來實現這個問題。 其實,這個時候就需要自定義控制元件來實現。 第一步需要自定義View的屬性。
[C語言]宣告解析器cdecl修改版
一、寫在前面 K&R曾經在書中承認,"C語言宣告的語法有時會帶來嚴重的問題。"。由於歷史原因(BCPL語言只有唯一一個型別——二進位制字),C語言宣告的語法在各種合理的組合下會變得晦澀難懂。不過在15級的優先順序規則加持下,C語言的宣告
遠端WEB控制MP3播放器設計(基於mini2440)
網上有很多 基於mini2440的MP3播放器設計的資料,多是按鍵控制,這裡博主做了些輕微改動,利用遠端WEB來控制MP3播放,具體怎麼實現,下面會給出,大家先看看效果: WEB介面: 後臺執行: 因為不是什麼課程設計報告,博主就不闡述的那麼詳細,這個設計主要有三部分組
從零開始學習PYTHON3講義(十四)寫一個mp3播放器
《從零開始PYTHON3》第十四講 通常來說,Python解釋執行,執行速度慢,並不適合完整的開發遊戲。隨著電腦速度的快速提高,這種情況有所好轉,但開發遊戲仍然不是Python的重點工作。 大多應用是利用Python開發效率高的特點,進行遊戲原型驗證,或者在大的遊戲系統中,使用Python進行地圖、場
ESP32 開發筆記(八)ESP32 MP3 播放器
ESP32 MP3 播放器 ESP32 MP3 播放器 開發環境 環境搭建 編譯執行 執行結果 ESP32 MP3 播放器 原始碼地址:GitHub 開發環境 開發框架:ESP-IDF、E
從零開始學習python,寫一個mp3播放器!
從零開始學習python,寫一個mp3播放器! 《從零開始PYTHON3》第十四講 通常來說,Python解釋執行,執行速度慢,並不適合完整的開發遊戲。隨著電腦速度的快速提高,這種情況有所好轉,但開發遊戲仍然不是Python的重點工作。 從零開始學習python,寫一個mp3播放器
Android練習專案 Mp3播放器實現(一)
對於Android的學習,需要掌握的東西有點多,需要我們認真,小心,不斷的進取。前天突然有個想法,覺得Mp3播放器是一個可以練習的專案,於是在網上搜了下,發現有人已經寫了部落格,看了他們的部落格後,我覺得他們說的一點很對,Mp3播放器基本用到了Android裡面
windows下 利用CoreAudio,Libmad,和3D環繞音效原理實現的MP3播放器
(博主qq,1204802552,歡迎交流) 之前公司的專案用到了CoreAudio API,這是windows下一套全新的用於開發音訊應用程式的API,之前我也寫過相關的部落格 後來有一段時間,我迷上了3D環繞音效的音樂,也就是大家熟知的Echo回聲
x寶23大洋包郵的老式MP3播放器簡單評測
不知道 mp3 四川 不錯 除了 屏幕 mp3播放器 普通 分享圖片 (純興趣測評,非廣告) 最近逛X寶,看到了這個古董級MP3播放器居然還在售,於是腦抽+情懷泛濫買了一個。 然後呢,從遙遠的深圳跨越好幾千公裏郵過來了這個玩意: 那節南孚5號電池是我自己的,是為了對比一
android版ape,flac,wav,mp3播放器
該播放器是根據網上一位大神的java swing版本的多音訊格式播放器修改的,這是他的播放器的下載地址,java swing版本:https://github.com/tulskiy/musique.git 這只是移植的一個demo,完成的功能如下:(沒相到java swing版本移植過來是這麼麻煩的) 目
Linux c實現音樂播放器(madplay)
/* 專案需求: 1.實現音樂基本功能:播放,暫停及繼續,下一首,上一首,退出。 2.自動生成歌曲列表檔案。(重定向) 3. 實現單曲迴圈。 思路:
Objective-c語言_設定器和訪問器
設定器和訪問器 我們知道。一個鏈尾idea例項變數如果是被@protected 或者 @private所修飾,那麼我們將不能對該成員變數 進行復制,滿足了我們希望的封裝和安全。但是為了交換資訊,我們希望使用@public型別。似乎者兩者的矛盾 不可調節,這個時候我們就可以使