سورس برنامه پخش فایلهای صوتی MP3 Player سی پلاس

تخفیف برای خرید این پروژه: زیر دکمه خرید، در پایین همین صفحه

پلاس

قیمت : ۱۰۵۰۰ تومان ( ده هزار و پانصد تومان)

دسته :

کامپیوتر و IT

نوع فایل:

Cpp ,

توضیحات:

این پروژه در ویژوال استودیو انجام گردیده است.


توضیحات :

سورس کد پیاده سازی برنامه پخش فایلهای صوتی MP3 Player در پلاس

در این برنامه شما می توانید انواع فرمتهای صوتی را پخش و گوش دهید. 

همراه با فایلهای
EXE , CPP

تصاویری از محیط این برنامه :

=================================



=========================

 مشاهده قسمتی از سورس کد این پروژه :

////// متغیرهای سراسری برنامه
HWND hWnd = NULL;
HWND hPlay = NULL;
HWND hStop = NULL;
HWND hPause = NULL;
HWND hOpen = NULL;
HWND hProgress = NULL;
HANDLE hBitmap = NULL;
HDC dcSkin = NULL;
BOOL bDone = FALSE;
BOOL bRegioned = TRUE;
int Status = 0;
int ScreenWidth = 341;
int ScreenHeight = 263;
POINT curpoint, point;
RECT MainRect, rect;
HINSTANCE hInst;
MCIDEVICEID pDevice = 0;
MCI_OPEN_PARMS op;
char lastFile[256];
char Title[256];
char Time[256];
char szFileTitle[300];
int hours, minutes, seconds;
int rSeconds;

////// تعریف توابع اصلی برنامه
LRESULT CALLBACK WndProc( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam );
void SkinMe(HDC dc);
void RegionMe();
void ShowMessage( const char *Text, const char *Title, … );
void ShowMessage( const char *Text, … );
void PlayAudio( const char *Filename );
void PauseAudio();
void StopAudio();

//تابع ای پی آی برای شکل یا دیزاین برنامه
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd )
{
WNDCLASSEX wc;
MSG Msg;

wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.cbSize = sizeof(WNDCLASSEX);
wc.hbrBackground = (HBRUSH)GetStockObject( DKGRAY_BRUSH );
wc.hCursor = LoadCursor( NULL, IDC_ARROW );
wc.hIcon = LoadIcon( NULL, IDI_APPLICATION );
wc.hIconSm = LoadIcon( NULL, IDI_WINLOGO );
wc.hInstance = hInstance;
wc.lpfnWndProc = WndProc;
wc.lpszClassName = “AUDIOPLAYER”;
wc.lpszMenuName = NULL;
wc.style = CS_HREDRAW | CS_VREDRAW;

// کلاس پنجره برنامه
RegisterClassEx( &wc );

// ایجاد پنجره برنامه پخش فایل صوتی
int x = (GetSystemMetrics(SM_CXSCREEN) / 2) – (ScreenWidth / 2);
int y = (GetSystemMetrics(SM_CYSCREEN) / 2) – (ScreenHeight / 2);
hWnd = CreateWindowEx( NULL, “AUDIOPLAYER”, “Audio Player”, WS_OVERLAPPEDWINDOW,
x, y, ScreenWidth, ScreenHeight, NULL, NULL, hInstance, NULL );
ShowWindow( hWnd, SW_SHOW );
UpdateWindow( hWnd );

HBITMAP hSkinBmp = LoadBitmap( hInstance, MAKEINTRESOURCE( IDB_SKIN ));
dcSkin = CreateCompatibleDC(0);
HBITMAP hOldBmp = (HBITMAP)SelectObject( dcSkin, hSkinBmp );
RegionMe();

hInst = hInstance;

// ست کردن زمان در برنامه پخش فایل صوتی
DWORD lastTime = GetTickCount() * 0.001f;
DWORD curTime;

//نوار نمایش دهنده مدت زمان پخش
INITCOMMONCONTROLSEX InitCtrlEx;

InitCtrlEx.dwSize = sizeof(INITCOMMONCONTROLSEX);
InitCtrlEx.dwICC = ICC_PROGRESS_CLASS;
InitCommonControlsEx(&InitCtrlEx);

// تنظیم صحیح زمان
rect.left = 10;
rect.right = 320;
rect.top = 50;
rect.bottom = 100;

while( !bDone )
{
// بهترین زمان برای مدت زمان یا کارکرد فایل صوتی
if(Status == 1)
{

curTime = GetTickCount() * 0.001f;
if( curTime – lastTime >= 1 ) // 1 ثانیه
{
SendMessage(hProgress, PBM_SETSTEP, 1, 0);
SendMessage(hProgress, PBM_STEPIT, 0, 0);
if(seconds == 1 && minutes == 0 && hours == 0)
{ // پایان پخش آهنگ صوتی
sprintf( Title, “Stopped: %s”, szFileTitle );
StopAudio();
SendMessage(hProgress, PBM_SETPOS, 0, 0);
Status = 0;
}
if(seconds != 0)
seconds–; // کسر شدن ثانیه به ثانیه زمان هنگام پخش
else {
minutes–;
seconds = 59; // ریست شدن زمان
}
sprintf(Time, “%02d:%02d:%02d”, hours, minutes, seconds); // تازه سازی نمایش زمان پخش فایل صوتی
InvalidateRect(hWnd, &rect, TRUE);
lastTime = curTime;
}
}
else
{
if(GetMessage( &Msg, hWnd, NULL, NULL ))
{
TranslateMessage( &Msg );
DispatchMessage( &Msg );
}
}
}

return Msg.wParam;
}

//ایجاد دکمه های پخش و باز کردن و توقف و پخش مجدد فایل صوتی
LRESULT CALLBACK WndProc( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam )
{
switch( Msg )
{
case WM_CREATE:
hPlay = CreateWindow( “BUTTON”, “Play”, WS_CHILD | WS_VISIBLE | BS_FLAT | BS_BITMAP,
۱۰, ۲۰۰, ۳۵, ۳۵, hWnd, NULL, hInst, NULL );
hPause = CreateWindow( “BUTTON”, “Pause”, WS_CHILD | WS_VISIBLE | BS_FLAT | BS_BITMAP,
۴۵, ۲۰۰, ۳۵, ۳۵, hWnd, NULL, hInst, NULL );
hStop = CreateWindow( “BUTTON”, “Stop”, WS_CHILD | WS_VISIBLE | BS_FLAT | BS_BITMAP,
۸۰, ۲۰۰, ۳۵, ۳۵, hWnd, NULL, hInst, NULL );
hOpen = CreateWindow( “BUTTON”, “Open”, WS_CHILD | WS_VISIBLE | BS_FLAT | BS_BITMAP,
۲۹۶, ۲۰۰, ۳۵, ۳۵, hWnd, NULL, hInst, NULL );

hBitmap = LoadImage (GetModuleHandle (NULL), “Images/play_button.bmp”,
IMAGE_BITMAP,0, 0,LR_DEFAULTCOLOR | LR_LOADFROMFILE);
SendMessage(hPlay, BM_SETIMAGE, (WPARAM)IMAGE_BITMAP,
(LPARAM)(HANDLE) hBitmap);

hBitmap = LoadImage (GetModuleHandle (NULL), “Images/pause_button.bmp”,
IMAGE_BITMAP,0, 0,LR_DEFAULTCOLOR | LR_LOADFROMFILE);
SendMessage(hPause, BM_SETIMAGE, (WPARAM)IMAGE_BITMAP,
(LPARAM)(HANDLE) hBitmap);

hBitmap = LoadImage (GetModuleHandle (NULL), “Images/stop_button.bmp”,
IMAGE_BITMAP,0, 0,LR_DEFAULTCOLOR | LR_LOADFROMFILE);
SendMessage(hStop, BM_SETIMAGE, (WPARAM)IMAGE_BITMAP,
(LPARAM)(HANDLE) hBitmap);

hBitmap = LoadImage (GetModuleHandle (NULL), “Images/open_button.bmp”,
IMAGE_BITMAP,0, 0,LR_DEFAULTCOLOR | LR_LOADFROMFILE);
SendMessage(hOpen, BM_SETIMAGE, (WPARAM)IMAGE_BITMAP,
(LPARAM)(HANDLE) hBitmap);

hProgress = CreateWindowEx(NULL, PROGRESS_CLASS, NULL,
PBS_SMOOTH | WS_CHILD | WS_VISIBLE,
۱۲۰, ۲۰۰, ۱۷۱, ۳۵,
hWnd, NULL, hInst, NULL);
SendMessage(hProgress, PBM_SETBARCOLOR, 0, (COLORREF)RGB(20, 95, 190));
SendMessage(hProgress, PBM_SETBKCOLOR, 0, (COLORREF)RGB(210, 230 , 255));
break;

case WM_COMMAND:
if ((HWND)lParam == hPlay && HIWORD(wParam) == BN_CLICKED)
{
// پخش فایل صوتی
if(!strcmp(lastFile, “”)) return 0;
sprintf( Title, “Playing: %s”, szFileTitle );
InvalidateRect(hWnd, &rect, TRUE);
if(Status == 0) { //اگر در حال پخش نیست آنرا پخش کند
PlayAudio( lastFile );
Status = 1;
}
if(Status == 2) { // اگر پاوز یا متوقف است آنرا پخش کند
mciSendCommand( pDevice, MCI_RESUME, 0, NULL );
Status = 1;
}
}

if ((HWND)lParam == hPause && HIWORD(wParam) == BN_CLICKED)
{
// کد مربوط به توقف فایل صوتی یا همان پاوز کردن
if(!strcmp(lastFile, “”)) return 0;
sprintf( Title, “Paused: %s”, szFileTitle );
InvalidateRect(hWnd, &rect, TRUE);
PauseAudio();
Status = 2;
}

if ((HWND)lParam == hStop && HIWORD(wParam) == BN_CLICKED)
{
// توقف کامل پخش فایل صوتی یا استاپ
if(!strcmp(lastFile, “”)) return 0;
sprintf( Title, “Stopped: %s”, szFileTitle );
InvalidateRect(hWnd, &rect, TRUE);
StopAudio();
Status = 0;
SendMessage(hProgress, PBM_SETPOS, 0, 0);
}

if ( (HWND) lParam == hOpen && HIWORD(wParam) == BN_CLICKED)
{
// باز کردن فایل
TCHAR szFile[MAX_PATH] = { 0 };

TCHAR *szFilter =TEXT(“MP3 Files(*.mp3)\0”)
TEXT(“*.mp3\0”);

// نمایش پوشه ی جاری برای انتخاب فایل صوتی
TCHAR szCurDir[MAX_PATH];
::GetCurrentDirectory(MAX_PATH-1,szCurDir);

OPENFILENAME ofn;
ZeroMemory(&ofn,sizeof(OPENFILENAME));

ofn.lStructSize = sizeof(OPENFILENAME);
ofn.hwndOwner = GetParent(hWnd);
ofn.lpstrFilter = szFilter;
ofn.nFilterIndex = 1;
ofn.lpstrFile = szFile;
ofn.nMaxFile = sizeof(szFile);
ofn.lpstrTitle = TEXT(“Open”);
ofn.lpstrFileTitle = szFileTitle;
ofn.nMaxFileTitle = 300;
ofn.Flags = OFN_ENABLEHOOK | OFN_EXPLORER;
if (GetOpenFileName(&ofn))
{
if(Status == 1)
{
StopAudio();
Status = 0;
}
SendMessage(hProgress, PBM_SETPOS, 0, 0);

// سعی کردن برای باز نمودن فایل صوتی که ممکن است وجود داشته باشد
HANDLE hFile = CreateFile(ofn.lpstrFile, GENERIC_READ,
FILE_SHARE_READ, 0, OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL, 0);

// در صورت عدم موفقیت برای ایجاد و پخش فایل صوتی -۱ را بازگدانی کن
if (hFile == (HANDLE)-1)
{
MessageBox(NULL,”Could not open this file”, “File I/O Error”, MB_ICONSTOP);
return FALSE;
}

ZeroMemory(Title, sizeof(Title));
sprintf( Title, “Playing: %s”, szFileTitle );

// تابع پخش فایل صوتی را فراخوانی می کند
PlayAudio( ofn.lpstrFile );
Status = 1;
}
}
break;

case WM_LBUTTONDOWN:
SetCapture( hWnd );
GetWindowRect(hWnd, &MainRect);

//ذخیره سازی مختصات موقعیت کنونی مکان نما در هنگام پخش فایل صوتی
GetCursorPos(&point);

ScreenToClient(hWnd, &point);

// دکمه ی مینیمایز یا کوچک کردن صفحه
if(point.x >= 275 && point.x <= 287)
{
if(point.y >= 8 && point.y <= 20)
{
ShowWindow( hWnd, SW_MINIMIZE );
}
}

// کد بستن پنجره پخش برنامه
if(point.x >= 311 && point.x <= 324)
{
if(point.y >= 8 && point.y <= 20)
{
SendMessage( hWnd, WM_CLOSE, 0, 0 );
}
}
break;

case WM_LBUTTONUP:
ReleaseCapture();
break;

case WM_MOUSEMOVE:
GetCursorPos(&curpoint);

if(wParam==MK_LBUTTON)
{
MoveWindow(hWnd, curpoint.x – point.x, curpoint.y – point.y,
MainRect.right – MainRect.left, MainRect.bottom – MainRect.top,
TRUE);
}
break;

case WM_PAINT:
PAINTSTRUCT ps;
BeginPaint(hWnd,&ps);

// پوسته ی گرافیکی برنامه پخش صوتی
if (bRegioned) SkinMe(ps.hdc);

SetBkMode( ps.hdc, TRANSPARENT );
TextOut( ps.hdc, 10, 55, Title, 45 );
TextOut( ps.hdc, 10, 70, Time, strlen(Time) );

EndPaint(hWnd,&ps);
break;

case WM_DESTROY:
bDone = TRUE;
PostQuitMessage( 0 );
break;
}

return DefWindowProc( hWnd, Msg, wParam, lParam );
}

void SkinMe(HDC dc)
{
BitBlt(dc, 0,0,ScreenWidth-4,ScreenHeight, dcSkin, 0,0, SRCCOPY);
}

void RegionMe()
{
HRGN hRegion1 = CreateEllipticRgn(-59,-59,ScreenWidth+59,ScreenHeight+59);

SetWindowRgn(hWnd, hRegion1, true);

DeleteObject(hRegion1);

DWORD dwStyle = GetWindowLong(hWnd, GWL_STYLE);
dwStyle &= ~(WS_CAPTION|WS_SIZEBOX);
SetWindowLong(hWnd, GWL_STYLE, dwStyle);

// دوباره سازی ایجاد پنجره
InvalidateRect(hWnd, NULL, TRUE);
SetWindowPos(hWnd, NULL, 0,0,ScreenWidth-1,ScreenHeight-1, SWP_NOMOVE|SWP_NOZORDER);

bRegioned = true;
}

//تابع پخش فایل صوتی
void PlayAudio( const char *Filename )
{
if(Status == 1) return;

op.dwCallback = 0;
op.lpstrDeviceType = (char*)MCI_ALL_DEVICE_ID;
op.lpstrElementName = Filename;
op.lpstrAlias = 0;

//ارسال دستور پخش
if ( mciSendCommand( 0, MCI_OPEN,
MCI_OPEN_ELEMENT | MCI_WAIT,
{
// باز کردن و پخش مکوفقیت آمیز فایل صوتی
pDevice = op.wDeviceID;
}
else
{
// خطا
}

MCI_PLAY_PARMS pp;
pp.dwCallback = 0;

if(Status == 0)
{
strcpy( lastFile, Filename );
char szCommandBuffer[512] = {char()}, szReturnBuffer[32] = {char()};

::sprintf(szCommandBuffer, “open \”%s\” alias myfile”, Filename);

DWORD dwDummy = ::mciSendString(szCommandBuffer, NULL, NULL, NULL);

if(!dwDummy)
{
::sprintf(szCommandBuffer, “status myfile length”, Filename);
dwDummy = ::mciSendString(szCommandBuffer, szReturnBuffer, sizeof(szReturnBuffer), NULL);

::mciSendString(szCommandBuffer, NULL, NULL, NULL);
}

if(dwDummy) { }

rSeconds = atoi(szReturnBuffer)/1000;
SendMessage(hProgress, PBM_SETRANGE, 0, MAKELPARAM(0, rSeconds));
float nSecond = atof(szReturnBuffer)/1000/60;
seconds = (int)nSecond;
nSecond -= seconds;
seconds = nSecond * 60;
hours = atoi(szReturnBuffer)/1000/60/60;
minutes = atoi(szReturnBuffer)/1000/60;
InvalidateRect(hWnd, &rect, TRUE);
}

mciSendCommand(pDevice, MCI_PLAY, MCI_NOTIFY, (DWORD)&pp);
}

//تابع توقف موقت پخش فایل صوتی
void PauseAudio()
{
mciSendCommand( pDevice, MCI_PAUSE, 0, NULL );
}

//تابع توقف کامل پخش فایل صوتی
void StopAudio()
{
mciSendCommand( pDevice, MCI_STOP, 0, NULL );
mciSendCommand( pDevice, MCI_CLOSE, 0, 0 );
mciSendString( “close myfile”, 0, 0, 0);
}


دانلود کامل پروژه همراه با فایل سورس کد و فایل اجرایی آن
در تمامی ساعات شبانه روز >> پرداخت آنلاین و دانلود آنلاین پروژه


پذیرش و انجام سفارشات پروژه های شما
شماره تماس پشتیبانی سایت : ۰۹۳۹۲۷۶۱۶۳۰

 

تخفیف بسیار ویژه ۳۰ درصدی : دوست عزیز سعی ما این بوده که پروژه ها را با کمترین قیمت ممکن (مقایسه کنید با قیمت سایر سایتها) در اختیار شما قرار دهیم اما اگر دوستی هست که واقعا این مبلغ نیز برایش مقدور نیست می توانید عنوان تحقیق یا پروژه مورد نظر، کلمه Takhfif و آدرس ایمیل خود را به شماره پشتیبانی سایت  ۰۹۳۹۲۷۶۱۶۳۰  پیامک کنید تا لینک تخفیف سریعا برای شما ارسال گردد .

خرید انواع تحقیق و پروژه های شما بصورت توافقی : ۰۹۳۹۲۷۶۱۶۳۰

Related posts

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

Translate »