自己动手开发音乐播放器《七》使用滑块实现音量和播放进度
来源:互联网 发布:文华财经看盘软件 编辑:程序博客网 时间:2024/06/05 22:35
音量控制和播放进度也是音乐播放器中的基本的操作
首先定义一个函数用于控制音量
//控制音量void Main_OnSlider(HWND hwnd,HWND hwndCtl,UINT code,int pos);
然后在BOOL WINAPI Main_Proc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)中添加下面的代码
HANDLE_MSG(hWnd, WM_HSCROLL,Main_OnSlider);//响应音量滑动条被拖动
最后在完善Main_OnSlider中的代码
//音量滑块被拖动void Main_OnSlider(HWND hwnd,HWND hwndCtl,UINT code,int pos){//判断是否拖动了音量滑块switch(GetDlgCtrlID(hwndCtl)){//拖动音量滑块case IDC_VOLUME_SLIDER:{//调节音量SetVolume(hwnd);}break;}}
运行效果
播放进度的实现:
实现播放进度和音量控制类似,需要用到回调函数1秒钟调用一次
计算一首歌曲的总长度
定义一些全局变量用于实现歌曲的总播放时间
/**************************************************************************** 计算歌曲的总播放时间所需的全局变量*****************************************************************************/static TCHAR musicTotalTime[256];//保存歌曲的总时间static int TotalSecond;//保存歌曲的总时间(秒)
定义一个函数用于计算歌曲的总时长
/*************************************************************************** 函数名: void MusicTotalTime(HWND hwnd) 函数功能: 计算一首歌曲的总时间****************************************************************************/void MusicTotalTime(HWND hwnd){TCHAR musicTotalLength[256];//保存歌曲的总时长TCHAR cmd[MAX_PATH];//保存播放命令GetMusic(hwnd);//得到选中的歌曲int Minute;//保存歌曲的时间(分钟)//打印得到歌曲的总时长的命令wsprintf(cmd,"status %s length",OpenMusicFile);//发送得到歌曲的总时长的命令mciSendString(cmd,musicTotalLength,sizeof(musicTotalLength)/sizeof(TCHAR),NULL);//得到歌曲的总时长(秒)TotalSecond = atoi(musicTotalLength)/1000;//得到歌曲的时间长度(分)Minute = TotalSecond / 60;//得到歌曲的时长(秒)int Second = TotalSecond - (Minute * 60);//打印歌曲的时长wsprintf(musicTotalTime,"%02d:%02d",Minute,Second);//显示歌曲的时长SetDlgItemText(hwnd,IDC_WHOLE_TIME,musicTotalTime);}
在PlayMusic中定义一个定时器用于处理播放进度
SetTimer(hwnd,2,1000,SetProgressBar);//用于处理播放进度
完善SetProgressBar函数
/***************************************************************************j 函数名: SetProgressBar 函数功能: 播放歌曲时滑动条自动滑动****************************************************************************/void CALLBACK SetProgressBar(HWND hwnd, UINT message, UINT iTimerId,DWORD dwTime){TCHAR nowMusicTime[256];//保存歌曲的播放位置TCHAR totalLength[256];//保存歌曲的长度TCHAR cmd[MAX_PATH];//保存播放命令//打印得到歌曲的长度的命令wsprintf(cmd,"status %s length",OpenMusicFile);//发送得到歌曲的长度的命令mciSendString(cmd,totalLength,sizeof(totalLength)/sizeof(TCHAR),NULL);//得到歌曲的总时长int totalSecond = atoi(totalLength) / 1000;//设置播放进度条的最大值是歌曲的长度SendDlgItemMessage(hwnd,IDC_MUSIC_SLIDER,TBM_SETRANGEMAX,false,(LPARAM)totalSecond);//设置播放进度的最小值为0SendDlgItemMessage(hwnd,IDC_MUSIC_SLIDER,TBM_SETRANGEMIN,false,(LPARAM)0);//打印得到播放位置的命令wsprintf(cmd,"status %s position",OpenMusicFile);//发送得到播放位置的命令mciSendString(cmd,nowMusicTime,sizeof(nowMusicTime)/sizeof(TCHAR),NULL);int musicSliderTime = atoi(nowMusicTime) / 1000;//设置播放进度SendDlgItemMessage(hwnd,IDC_MUSIC_SLIDER,TBM_SETPOS, true,(LPARAM)musicSliderTime);}
实现效果
0 0
- 自己动手开发音乐播放器《七》使用滑块实现音量和播放进度
- 【Android】Android开发实现进度条效果,SeekBar的简单使用。音量,音乐播放进度,视频播放进度等
- GL音乐播放器--代码实现<四>--进度控制和可隐藏的音量控制
- 音乐播放器的歌曲进度调节和音量大小调节实现
- 自己动手开发音乐播放器《五》播放功能的实现
- 自己动手开发音乐播放器《六》播放方式的实现
- 自己动手开发音乐播放器《十一》下载音乐播放器
- 自己动手开发音乐播放器《八》迷你界面的实现
- 自己动手实现音乐播放器app
- 【基于QMediaPlayer的简易视频播放器】— 3、结合QSlider实现播放进度控制和音量控制
- android-----音乐播放器的音量控制功能(开发)
- 利用MCI命令进行 播放录制音乐,以及弹出光驱,音量控制获得播放进度等等操作。。。开发必备。
- Android音乐播放器SeekBar控制音量变化的实现
- 音乐播放器之(音量控制的实现)
- 自己动手开发音乐播放器(一)主界面的搭建
- 自己动手开发音乐播放器(二)附加界面的搭建
- 自己动手开发音乐播放器(三)最小化托盘
- 自己动手开发音乐播放器(四)文件操作
- 深入研究Java类加载机制
- 一个简单的WPF MVVM实例
- centos中php5.2 fpm升级到php5.3
- POJ1852 Ant
- inner join,left join用法
- 自己动手开发音乐播放器《七》使用滑块实现音量和播放进度
- java欢迎你
- 【示例】《Java程序设计》第二周博文:第二周 计算圆面积
- JSON 入门指南
- 虚拟机下fedora无法上网的解决方法
- xp驱动和Win7驱动的区别
- 黑马程序员——IO流中的练习
- 程序中执行shell命令
- interceptor--structs2拦截器