❶ 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語言編寫,可以給出音頻文件,只需要播放即可)
用VC++編譯通過,代碼如下(其中a.wav為自己給出):
#include<windows.h>
#pragma comment(lib,"winmm.lib")
void main()
{
PlaySound("C:\\a.wav",0,SND_FILENAME|SND_SYNC);
}
❸ 在c語言程序中怎樣載入背景音樂啊,是背景音樂哦,求函數具體用法和實例。謝謝
代碼如下:
#include <windows.h>
#include <mmsystem.h>
#pragma comment(lib, "WINMM.LIB")
/*播放音樂*/
void playMusic()
{
//aiyo.wav是放在代碼文件中
PlaySound(TEXT("aiyo.wav"),0,SND_FILENAME | SND_ASYNC);
}
/**
* 主 函 數(音樂放第一排)
*/
void main()
{
playMusic();
title(); //歡迎界面上的標題
flower(); //列印字元畫
welcome(); //歡迎界面上的選項菜單
}
(3)c語言打開網頁音樂擴展閱讀
C語言解析WAV音頻文件:
C語言基本的二進制文件操作函數有fopen,fread等等。(注意是二進制文件操作函數,所以我們不討論fgets,這是普通的文本文件操作函數)
fread是一個函數。從一個文件流中讀數據,最多讀取count個項,每個項size個位元組,如果調用成功返回實際讀取到的項個數(小於或等於count),如果不成功或讀到文件末尾返回 0。
它的函數原型為
size_t fread ( void *buffer, size_t size, size_t count, FILE *stream) ;
而且C語言還有一種類型叫做結構體,它在內存中是順序存儲的。剛好我們也已經得知了WAV文件在文件中的順序以及該順序中每個部分對應的含義。
那麼我們可以事先根據前面所說的WAV文件結構來定義好一個struct,然後在main主函數中初始化這個struct,並且通過fread的第一個參數帶入初始化好的這個struct,那麼執行之後就會自動讀取該文件,並且按照順序自動把這些元數據填充進了我們初始化好的struct中。
❹ C語言如何播放背景音樂
一.在程序中直接播放聲音文件
在VC++ 中的多媒體動態連接庫中提供了一組與音頻設備有關的函數。利用這些函數可以方便地播放聲音。最簡單的播放聲音方法就是直接調用VC++中提供的聲音播放函數BOOL sndPlaySound ( LPCSTR lpszSound,UINT fuSound ); 或BOOL PlaySound( LPCSTR lpszSound, HMODULE hmod, DWORD fuSound );其中參數lpszSound是需要播放聲音的.W***文件的路徑和文件名, hmod在這里為NULL,fuSound是播放聲音的標志,詳細說明請參考VC++中的幫助。 例如播放C:soundmusic.wav可以用sndPlaySound ("c:\sound\music.wav",SND_ASYNC);或PlaySound("c:\sound\music.wav",NULL, SND_ASYNC|SND_NODEFAULT );如果沒有找到music.wav文件,第一種格式將播放系統默認的聲音,第二種格式不會播放系統默認的聲音。
二.將聲音文件加入到程序中
在VC++的程序設計中,可以利用各種標準的資源,如點陣圖,菜單,對話框等。同時VC++也允許用戶自定義資源,因此我們可以將聲音文件作為用戶自定義資源加入程序資源文件中,經過編譯連接生成EXE文件,實現無.W***文件的聲音播放。要實現作為資源的聲音文件的播放,首先要在資源管理器中加入待播放的聲音文件。
具體步驟入下:
1.獲得包含資源的模塊句柄:
HMODULE hmod=AfxGetResourceHandle();
2.檢索資源塊信息:
HRSRC hSndResource=FindResource(hmod,MAKEINTRESOURCE(IDR_W***E1),_T("W***E"));
3. 裝載資源數據並加鎖:
HGLOBAL hGlobalMem=LoadResource(hmod,hSndResource);
LPCTSTR lpMemSound=(LPCSTR)LockResource(hGlobalMem);
4.播放聲音文件:
sndPlaySound(lpMemSound,SND_MEMORY));
5.釋放資源句柄:
FreeResource(hGlobalMem);
❺ C語言播放音樂
#include<stdio.h>
#include<windows.h>
voidmain()
{
system("f:\kugou\test.mp3");//路徑不能出現空格,還有''換為'\'
}