win32API 开发的音乐播放器
来源:互联网 发布:win10wlan未识别的网络 编辑:程序博客网 时间:2024/06/10 03:30
vs2010编译成功
//stdAfx.h
#ifndef VOL_UNIT#define VOL_UNIT 10;#endif #include <windows.h>//定时器void CALLBACK getPosition(HWND hwnd,UINT uMessage,UINT iTimerID,DWORD dwTime);//播放音乐void PlayMusic(HWND hwnd);//播放下一首歌曲void PlayNextMusic(HWND hwnd);//停止播放void StopMusic(HWND hwnd); //打开音乐文件void OpenMusicFile(HWND hwnd);//resource.h
//#define IDD_MAIN 101#define IDC_BTNPLAY 1004#define IDC_BTNSTOP 1005#define IDC_LISTMSC 1006#define IDC_SLIDER1 1007#define IDC_BTNOPEN 1008#define IDC_MONTHCALENDAR1 1014// Next default values for new objects// #ifdef APSTUDIO_INVOKED#ifndef APSTUDIO_READONLY_SYMBOLS#define _APS_NEXT_RESOURCE_VALUE 103#define _APS_NEXT_COMMAND_VALUE 40001#define _APS_NEXT_CONTROL_VALUE 1015#define _APS_NEXT_SYMED_VALUE 101#endif#endif//MainDlg.h
#ifndef _MAIN_H
#define _MAIN_H
#include <windows.h>
BOOL WINAPI Main_Proc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
BOOL Main_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam);
void Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify);
void Main_OnClose(HWND hwnd);
#endif
//MainDlg.cpp
#include "stdafx.h"
#include <windows.h>
#include <windowsx.h>
#include "resource.h"
#include "MainDlg.h"
#include<COMMCTRL.h>
TCHAR CUR_MUSIC[MAX_PATH] = "";//定义全局变量记录当前播放文件的短路径
int vol =1000 ;//记录当前的音量
int index = 0 ;//记录当前播放文件的下标值
int volume = 1000;//记录声音大小
#pragma comment(lib,"winmm.lib")
BOOL WINAPI Main_Proc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch(uMsg)
{
HANDLE_MSG(hWnd, WM_INITDIALOG, Main_OnInitDialog);
HANDLE_MSG(hWnd, WM_COMMAND, Main_OnCommand);
HANDLE_MSG(hWnd,WM_CLOSE, Main_OnClose);
case WM_HSCROLL:
{
HWND hTrackbar = GetDlgItem(hWnd, IDC_SLIDER1);
if (hTrackbar == (HWND)lParam)
{
int newPos = SendMessage(hTrackbar, TBM_GETPOS, 0, 0);
int selStart = SendMessage(hTrackbar, TBM_GETSELSTART, 0, 0);
int selEnd = SendMessage(hTrackbar, TBM_GETSELEND, 0, 0);
volume = newPos*VOL_UNIT;//将音量记录到全局变量中
TCHAR cmd[MAX_PATH+12];
wsprintf(cmd,"setaudio %s volume to %i",CUR_MUSIC,volume);
mciSendString(cmd,"",0,NULL);
}
break;
}
}
return FALSE;
}
BOOL Main_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam)
{
HWND hTrackbar = GetDlgItem(hwnd, IDC_SLIDER1);//初始化是将滚动条设为最大声
int selEnd = SendMessage(hTrackbar, TBM_GETSELEND, 0, 0);
SendMessage(hTrackbar, TBM_SETPOS, (WPARAM)TRUE, (LPARAM)100);
return TRUE;
}
void Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)
{
switch(id)
{
case IDC_BTNOPEN:
{
OpenMusicFile(hwnd);
}
break;
/// 双击时播放
case IDC_LISTMSC:
{
switch(codeNotify)
{
case LBN_DBLCLK:
{
PlayMusic(hwnd);
}
break;
}
}
break;
//停止播放
case IDC_BTNSTOP:
{
StopMusic(hwnd);
}
break;
}
}
void Main_OnClose(HWND hwnd)
{
EndDialog(hwnd, 0);
}
//stdAfx.cpp
#include "stdafx.h"
#include <windows.h>
#include <windowsx.h>
#include "resource.h"
#include "MainDlg.h"
#include "stdafx.h"
#include <mmsystem.h>
extern TCHAR CUR_MUSIC[MAX_PATH] ;//定义外部变量记录当前播放歌曲的短路径
extern int index;
extern int volume;
void OpenMusicFile(HWND hwnd)
{
TCHAR fileName[MAX_PATH];
OPENFILENAME ofn;
ZeroMemory(&ofn,sizeof(ofn));
ofn.lStructSize = sizeof(OPENFILENAME);
ofn.hwndOwner = hwnd;//对话框的父窗口
ofn.Flags = 0;
ofn.hInstance = NULL;
ofn.lCustData = 0;
ofn.lpfnHook = NULL;
ofn.lpstrCustomFilter = NULL;
ofn.lpstrDefExt = TEXT("bmp");
ofn.lpstrFile = fileName;
ofn.lpstrFile[0] = TEXT('\0');
ofn.lpstrFileTitle = NULL;
ofn.lpstrFilter = TEXT("MP3音乐\0*.mp3");
ofn.lpstrInitialDir = NULL;
ofn.lpstrTitle = TEXT("辉哥NODPAD");
ofn.lpTemplateName = NULL;
ofn.nFileExtension = 0;
ofn.nFileOffset = 0;
ofn.nFilterIndex = 0;
ofn.nMaxCustFilter = 0;
ofn.nMaxFile = MAX_PATH;
ofn.nMaxFileTitle = 0;
if(GetOpenFileName(&ofn))
{
HWND lstHwnd = GetDlgItem(hwnd,IDC_LISTMSC);
int count = ListBox_GetCount(lstHwnd);
ListBox_InsertString(lstHwnd,count,fileName);//加入到ListBOX中
}
}
void PlayMusic(HWND hwnd)
{
//首先停止当前播放的歌曲
StopMusic(hwnd);
//得到要播放的歌曲路径
HWND listHwnd = GetDlgItem(hwnd,IDC_LISTMSC);
int curSelIndex = ListBox_GetCurSel(listHwnd);
index = curSelIndex;//将当前播放的歌曲记录到全局变量中
TCHAR temp[MAX_PATH+12];
ListBox_GetText(listHwnd,curSelIndex,temp);
GetShortPathName(temp,CUR_MUSIC,sizeof(CUR_MUSIC));
TCHAR playCmd[MAX_PATH+12];
wsprintf(playCmd,"play %s",CUR_MUSIC);
mciSendString(playCmd,"",0,NULL);
SetTimer(hwnd,index,1000,getPosition);
TCHAR cmd[MAX_PATH+12];
wsprintf(cmd,"setaudio %s volume to %i",CUR_MUSIC,volume);
mciSendString(cmd,"",0,NULL);
}
//定时器
void CALLBACK getPosition(HWND hwnd,UINT uMessage,UINT iTimerID,DWORD dwTime)
{
TCHAR statusCmd[MAX_PATH+12];
TCHAR sPosition[256];
wsprintf(statusCmd,"status %s position",CUR_MUSIC);
mciSendString(statusCmd, sPosition, sizeof(sPosition),0);
//播放完毕
if(!strcmp("0",sPosition))
{
PlayNextMusic(hwnd);
KillTimer(hwnd,iTimerID);
}
}
//
//main.cpp
#include "stdafx.h"
#include "resource.h"
#include "MainDlg.h"
#include <COMMCTRL.H>
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
InitCommonControls();
DialogBox(hInstance, MAKEINTRESOURCE(IDD_MAIN), NULL, Main_Proc);
return 0;
}
- win32API 开发的音乐播放器
- 音乐播放器的开发
- 音乐播放器开发
- android音乐播放器的开发实例
- 自己动手开发音乐播放器《五》播放功能的实现
- 自己动手开发音乐播放器《六》播放方式的实现
- android开发---音乐播放器的简单播放
- Android开发音乐播放器-音乐扫描
- Android开发音乐播放器
- Android开发音乐播放器
- 独立开发音乐播放器
- Android开发音乐播放器
- 音乐播放器开发记录
- 开发音乐播放器【1】
- iOS开发:音乐播放器
- 音乐播放器 - iOS开发
- 最简单、简易的android音乐播放器,android开发应用之(音乐播放)
- 自己动手开发音乐播放器《十一》下载音乐播放器
- 【leetcode】Word Search
- poj 2960,hdu 1536 S-NIM 博弈
- POJ 2263
- LayoutInflater作用及使用
- LayoutInflater的inflate函数用法详解
- win32API 开发的音乐播放器
- LayoutParams和LayoutInflater理解
- 算法题:数组中出现次数超过一半的数字
- 在JNI代码中发短信
- 成员函数形式重载运算符 []
- wireshark 过滤规则
- Objective-C的第一个程序
- POJ 2570
- MySQL SQL Tuning:Profile定位单条QUERY性能瓶颈