c語言播放音樂
⑴ 怎樣用標准C語言播放音樂
用C語言播放音樂,一般需要額外的庫或者調用系統的API函數。
以Windows為例,可以通過PlaySound函數播放wav格式的音樂。示例如下:
#include<stdio.h>
#include<windows.h>
#include<mmsystem.h>
#pragmacomment(lib,"WINMM.LIB")
intmain()
{
PlaySound(TEXT("1.wav"),0,SND_FILENAME);//1.wav是要播放的音樂文件
return0;
}
如果想播放mp3音樂可以使用如下代碼。
注意:生成程序後,請在cmd中執行此程序,不要在vc/vs的IDE中運行。
#include<windows.h>
#include<mmsystem.h>
#include<stdio.h>
#pragmacomment(lib,"Winmm.lib")
intmain(intargc,char*argv[])
{
//絕對地址形式
TCHARfileName[]="ganlusi.mp3";
TCHARshortName[MAX_PATH];
GetShortPathName(fileName,shortName,sizeof(shortName)/sizeof(TCHAR));
TCHARcmd[MAX_PATH+10];
wsprintf(cmd,"play%s",shortName);
mciSendString(cmd,NULL,0,NULL);
Sleep(5*60*1000);//這里是防止一播放就結束做的延遲
return0;
}
⑵ C語言怎麼調用windows系統播放器播放指定路徑的MP3音樂文件
#include <mmsystem.h>
#pragma comment (lib, "winmm.lib")
main()
{
mciSendString("play 1.mp3 ", NULL, 0, NULL);//播放
}
⑶ C語言實現音樂播放器-MCI mcisendString
本次的實訓的mp3播放器主要涉及到的內容如下:
MCI API :負責音樂的播放,暫停,繼續,停止等功能
2)鏈表的構建
3)文件讀取問題
文件存儲有很多種方式,將數據寫入文件時可以以空格或者回車為結束。
在讀取時,不管是硬fscanf還是gets()進行讀取,都要注意一點,以gets為例,gets是讀到回車符號結尾,但是回車符號會被讀取進去。也就是說,需要將讀取到的字元串進行處理,最後一個字元要置為『0』;一定要注意這個問題。
還有一個_finddata這個結構體的問題:
此外由於在win10系統下不知道是我個人原因還是大部分人都有的的問題在編譯時findnext會報錯, 因為_findnext()返回類型為intptr_t而非long型,從「intptr_t」轉換到「long」丟失了數據。只需要把一般寫的:
long _findfirst( char *filespec, struct _finddata_t fileinfo );
返回值:
如果查找成功的話,將返回一個long型的唯一的查找用的句柄(就是一個唯一編號)。這個句柄將在_findnext函數中被使用。若失敗,則返回-1。
參數:
filespec:標明文件的字元串,可支持通配符。比如: .c,則表示當前文件夾下的所有後綴為C的文件。
fileinfo :這里就是用來存放文件信息的結構體的指針。這個結構體必須在調用此函數前聲明,不過不用初始化,只要分配了內存空間就可以了。
函數成功後,函數會把找到的文件的信息放入這個結構體中。
int _findnext( long handle, struct _finddata_t *fileinfo );
返回值:
若成功返回0,否則返回-1。
參數:
handle:即由_findfirst函數返回回來的句柄。
fileinfo:文件信息結構體的指針。找到文件後,函數將該文件信息放入此結構體中。
int _findclose( long handle );
返回值:成功返回0,失敗返回-1。
參數: handle :_findfirst函數返回回來的句柄
一下為一個簡化的版本主要是文件操作:
function.h
function.c
main.c
⑷ C語言 怎麼編程播放WAV音樂
可以使用PlaySound()函數播放聲音文件,
該函數原型位於#include<mmsystem.h>中,
函數原型為:BOOLPlaySound(LPCSTRpszSound,HMODULEhmod,DWORDfdwSound);
參數pszSound是要播放聲音的文件名,
只支持WAV等格式的文件
參數hmod是應用程序的實例句柄,一般傳遞NULL就可以;
參數fdwSound是標志的組合掩碼,
可選值有SND_FILENAME、SND_ASYNC、SND_SYNC等。
SND_FILENAME表示pszSound參數指定的是文件名(pszSound還可以指定資源、內存音樂、系統音樂等等);
SND_ASYNC:用非同步方式播放聲音,PlaySound函數在開始播放後立即返回;
SND_SYNC:同步播放聲音,在播放完後PlaySound函數才返回;
SND_LOOP一遍遍的重復播放聲音,必須與SND_ASYNC標志一塊使用。
【2、使用舉例】
PlaySound(TEXT("C:\WINDOWS\Media\WindowsXP啟動.wav"),NULL,SND_FILENAME|SND_SYNC);