c語言播放mp3
Ⅰ c語言播放MP3 API函數是什麼 怎麼用
可以使用PlaySound()函數播放mp3音頻,該函數原型位於windows.h。
PlaySound函數的聲明為:
BOOL PlaySound(LPCSTR pszSound, HMODULE hwnd,DWORD fdwSound);
參數pszSound是指定了要播放聲音的字元串。
參數hwnd是應用程序的實例句柄,除非pszSound的指向一個資源標識符(即fdwSound被定義為SND_RESOURCE),否則必須設置為NULL。
參數fdwSound是標志的組合,如下表所示。若成功則函數返回TRUE,否則返回FALSE。
使用PlaySound函數時需要在#include<windows.h>後面加上(注意:不能加在前面):常式:
CFileDialogdlg(TRUE,"mp3","*.mp3",OFN_HIDEREADONLY|OFN_ALLOWMULTISELECT,"mp3文件(*.mp3)|*.mp3|");
/*創建選擇對話框,讓用戶從文件夾中選取一個MP3文件*/
intiRet=dlg.DoModal();//獲得對話框返回值
if(IDOK==iRet)//如果返回值成功,表明成功獲取一個MP3文件
{
CStringpathName=dlg.GetPathName();//得到文件的路徑名稱
PlaySound(pathName,NULL,SND_FILENAME|SND_ASYNC);//用playsound函數播放該文件
}
Ⅱ 自己用c語言寫了個MP3播放器,請問怎麼實現流媒體來播放音樂
用socket傳輸mp3文件到本地計算機內存中保存,然後用你的播放器播放,播放完畢從內存中刪除
如果是視頻,就分段傳輸,每一段轉換成獨立文件,然後計算時間連續播放
媒體文件網路播放其實都是先下載在播放的,這個一般保存到內存中,播放完畢就清除,也就是所謂的緩存了
Ⅲ 怎樣用標准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語言中如何播放mp3數據幀
可以使用PlaySound()函數播放mp3聲音,該函數原型位於windows.h中,
函數原型為:
BOOL PlaySound(LPCSTR pszSound, HMODULE hmod,DWORD fdwSound);
參數pszSound是指定了要播放聲音的字元串,該參數可以是MP3文件的名字,或是MP3資源的名字,或是內存中聲音數據的指針,或是在系統注冊表WIN.INI中定義的系統事件聲音。如果該參數為NULL則停止正在播放的聲音。
參數hmod是應用程序的實例句柄,當播放MP3資源時要用到該參數,否則它必須為NULL。
參數fdwSound是標志的組合,各種可選的標志及意義如下所示。若成功則函數返回TRUE,否則返回FALSE。
播放標志以及含義:
SND_APPLICATION
用應用程序指定的關聯來播放聲音。
SND_ALIAS
pszSound參數指定了注冊表或WIN.INI中的系統事件的別名。
SND_ALIAS_ID
pszSound參數指定了預定義的聲音標識符。
SND_ASYNC
用非同步方式播放聲音,PlaySound函數在開始播放後立即返回。
SND_FILENAME
pszSound參數指定了MP3文件名。
SND_LOOP
重復播放聲音,必須與SND_ASYNC標志一塊使用。
SND_MEMORY
播放載入到內存中的聲音,此時pszSound是指向聲音數據的指針。
SND_NODEFAULT
不播放預設聲音,若無此標志,則PlaySound在沒找到聲音時會播放預設聲音。
SND_NOSTOP
PlaySound不打斷原來的聲音播出並立即返回FALSE。
SND_NOWAIT
如果驅動程序正忙則函數就不播放聲音並立即返回。
SND_PURGE
停止所有與調用任務有關的聲音。若參數pszSound為NULL,就停止所有的聲音,否則,停止pszSound指定的聲音。
SND_RESOURCE
pszSound參數是WAVE資源的標識符,這時要用到hmod參數。
SND_SYNC
同步播放聲音,在播放完後PlaySound函數才返回。
************************************************************
例如我想播放在C:\WINDOWS\Media目錄中的 Windows XP 啟動.MP3文件
程序如下:
#include <windows.h>
#include <stdlib.h>
int main(int argc, char* argv[])
{
PlaySound("C:\\WINDOWS\\Media\\Windows XP 啟動.MP3", NULL, SND_FILENAME | SND_ASYNC);
system("pause");
return 0;
}
*/:)))))))))))))))))))))))))))))))
Ⅳ 如何用C語言播放指定目錄下的MP3文件格式的音樂,要代碼實現,可以是簡單的代碼,但必須要能夠實現哈。
#include <stdio.h>
#include <windows.h>
#pragma comment(lib, "winmm.lib")
int main()
{
mciSendString("open \"C:\\我們的愛.mp3\" alias file", NULL, 0, NULL);
mciSendString("play file", NULL, 0, NULL);
return 0;
}
/*
不是我寫得 在網上找的...這個程序 主要就是call mciSendString函數, 好像沒什麼參考意義, 因為如何解碼是別人寫好的... 你想寫解碼mp3的函數 不可能用簡單代碼的
*/
Ⅵ C語言中PlaySound函數如何播放MP3文件
可以使用PlaySound()函數播放聲音文件,
該函數原型位於#include <mmsystem.h>中,
因此要使用PlaySound,首先需要添加對這個頭文件的引用。
提示:mm就是MultiMedia的簡寫,多媒體
【1、函數使用說明】
函數原型為: BOOL PlaySound(LPCSTR pszSound, HMODULE hmod,DWORD fdwSound);
返回值表示是否播放成功。
參數pszSound是要播放聲音的文件名,
只支持WAV等格式的文件(應該不能播放MP3格式文件);
你可以去mp3..com用「wav」為關鍵詞可以搜到很多wav音樂,
也可以用工具將其他格式的轉換為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\\Windows XP 啟
動.wav"),NULL,SND_FILENAME|SND_SYNC);
注意的問題:文件名中的反斜線要用「\\」,
因為C語言中「\」默認是轉義符,
如果要表示「\」則需要使用「\\」,
對這點不明白的請回去翻一下C語言的書;
對中文字元串要使用TEXT宏。
Ⅶ C語言中的PlaySound函數能播放MP3么
好像不能,Play Sound函數能播放WAVE跟WAV,還有系統聲音。不支持MP3。
Ⅷ 怎樣用C語言編程打開一個文件(比如mp3,mp4)
可以使用PlaySound()函數播放mp3音頻,該函數原型位於windows.h。
PlaySound函數的聲明為:
BOOL PlaySound(LPCSTR pszSound, HMODULE hwnd,DWORD fdwSound);
參數pszSound是指定了要播放聲音的字元串。
參數hwnd是應用程序的實例句柄,除非pszSound的指向一個資源標識符(即fdwSound被定義為SND_RESOURCE),否則必須設置為NULL。
參數fdwSound是標志的組合,如下表所示。若成功則函數返回TRUE,否則返回FALSE。
使用PlaySound函數時需要在#include<windows.h>後面加上(注意:不能加在前面):
常式:
CFileDialog dlg(TRUE, "mp3", "*.mp3", OFN_HIDEREADONLY|OFN_ALLOWMULTISELECT, "mp3文件(*.mp3)|*.mp3|");
/*創建選擇對話框,讓用戶從文件夾中選取一個MP3文件*/
int iRet = dlg.DoModal();//獲得對話框返回值
if(IDOK == iRet) //如果返回值成功,表明成功獲取一個MP3文件
{
CString pathName= dlg.GetPathName(); //得到文件的路徑名稱
PlaySound( pathName , NULL, SND_FILENAME | SND_ASYNC);//用playsound函數播放該文件
}
Ⅸ C語言如何播放mp3格式音樂
windows現有的API似乎只支持播放.wav格式的音頻,mp3格式恐怕你得再去網上找找開源代碼
//播放音頻"1.wav"
#include<stdio.h>
#include<windows.h>
#pragmacomment(lib,"winmm.lib")
intmain()
{
PlaySound("1.wav",NULL,SND_FILENAME|SND_ASYNC|SND_LOOP);
getchar();
return0;
}