音乐播放器c语言代码如何播放mp3音乐文件

今天看啥 热点:
在有些应用中需要用到背景音乐和音效,那在程序中是这么实现的。
1.首先加载背景音乐需要用到AVFoundation框架
2.音乐资源都是在包里的,所以需要获得包路径,涉及方法- (id)initWithContentsOfURL:(NSURL *)url error:(NSError **)outE
url其实就是包地址,可以通过[[NSBundlemainBundle]pathForResource:@"背景音乐" ofType:@"caf"];获得到路径path,然后用NSURL的fileURLWithPath方法将path转化为url;
3.设置音乐播放次数.numberOfLoops。设为0仅播放一次;设为1则循环1次播放2次;设为-1则循环播放不间断;
4.设置音乐声音大小.volume。
5.准备播放,调用方法 prepareToPlay。
6.开始播放,调用方法 play;停止播放:stop;
NSString *path = [[NSBundle mainBundle]pathForResource:@"背景音乐" ofType:@"caf"];
NSURL *url = [NSURL fileURLWithPath:path];
AVAudioPlayer *player = [[AVAudioPlayer alloc]initWithContentsOfURL:url error:nil];
player.numberOfLoops = -1;
player.volume = 0.5f;
[player prepareToPlay];
[player play];
而加载音效则需要用到AudioToolbox框架,和音乐一样需要加载包路径,使用的方法是AudioServicesCreateSystemSoundID,这是个c语言的方法,其中传入的url需要用到__bridge进行转换,传出一个SystemSoundID来提供播放的时候调用,播放使用的方法是AudioServicesPlaySystemSound(SystemSoundID inSystemSoundID) 。
NSString *path = [[NSBundle mainBundle]pathForResource:soundFileName ofType:nil];
NSURL *url = [NSURL fileURLWithPath:path];
SystemSoundID soundID;
AudioServicesCreateSystemSoundID((__bridge CFURLRef)(url), &soundID);
AudioServicesPlaySystemSound(soundID);
此外还有个方法是AudioServicesPlayAlertSound,此方法在播放音效的同时会发出震动,给用户提醒。
相关搜索:
相关阅读:
相关频道:
IOS教程最近更新在C语言控制台程序中播放MP3音乐
时间: 09:09:29
&&&& 阅读:203
&&&& 评论:
&&&& 收藏:0
标签:&&&&&&&&&&&&&&&&&&游戏没有声音多单调。
这里做一个简单的范例,用 mciSendString 函数播放 MP3 格式的音乐,先看看代码吧:&
#include &graphics.h&
#include &conio.h&
#pragma comment(lib,"Winmm.lib")
void main()
initgraph(640, 480);
mciSendString("open background.mp3 alias mymusic", NULL, 0, NULL);
outtextxy(0, 0, "按任意键开始播放");
mciSendString("play mymusic", NULL, 0, NULL);
outtextxy(0, 0, "按任意键停止播放");
mciSendString("stop mymusic", NULL, 0, NULL);
mciSendString("close mymusic", NULL, 0, NULL);
outtextxy(0, 0, "按任意键退出程序");
closegraph();
简单讲解一下:
一定要引用 Winmm.lib 库文件。这个范例中是通过 #pragma comment 命令引用的,也可以在项目属性中设置,这里不作介绍。
mciSendString 函数的功能很强大,甚至可以播放视频,不过这里就不多作介绍了,详细请参见
MSDN。我们平时只需要用到第一个参数,将另外三个参数置为 NULL, 0, NULL 即可。
第一个参数是多媒体命令字符串,不区分大小写。程序中,先要通过 open 命令打开 background.mp3,并用 alias
指定了别名为“mymusic”,这样在之后的代码中就可以方便的通过“mymusic”这个别名访问该音乐了。当然,并不是必须要指定别名,每次通过文件名访问也是可以的。
open 后面的 mp3 用绝对路径或相对路径都可以。
然后就是:play mymusic 开始播放,stop mymusic 停止播放,close mymusic 关闭文件。
如果需要同时播放多个音乐,请为不同的音乐指定不同的别名,然后分别操作即可。
不再需要播放的音乐,请记得用 close 命令关闭。
另外还有一个 PlaySound 函数也可以用来播放声音,不过可惜不支持 mp3 / wma,这里就不多做介绍了。
一些有用的多媒体命令:从头播放 xxx:
"play xxx from 0"
循环播放 .mp3 文件(.wma / .mid 同样可以):
"open xxx.mp3" 然后 "play xxx.mp3 repeat"
循环播放 .wav 文件:
"open xxx.wav type MPEGVideo" 然后 "play xxx.wav repeat"
关闭当前程序打开的所有多媒体文件:
"close all"&
如果文件名中有空格,需要用双引号引起来文件名(注意转义):
mciSendString("open \"D:\\My Music\\俞丽拿 梁祝 化蝶.mp3\" alias mymusic", NULL, 0, NULL);
如果希望将 mp3 嵌入到 exe 中,请参考:
实际中可能会遇到各种各样的问题,这里给出一个完整的范例程序,可以下载到本机试试能否正常播放。【】
这些暂时应该够用了吧,更多的多媒体命令请参见 MSDN。标签:&&&&&&&&&&&&&&&&&&原文:/honkly/p/3738022.html
&&国之画&&&& &&&&&&
&& &&&&&&&&&&&&&&
鲁ICP备号-4
打开技术之扣,分享程序人生!19:26 提问
c++怎么读取和播放电脑中的mp3文件
用什么函数,文件头等,执行语句时(比如设计了一个时钟,时间到就播放)可以在应用程序中播放mp3歌曲
按赞数排序
用mediaplayer控件
用MFC写的话用自带的mediaplayer控件,可以开启线程来进行播放音乐!
其他相似问题 播放声音文件的高级方法 在 VC++中提供了一组对音频设备及多媒体文件直接进行...使用playsound播放小音乐... 7页 2下载券 WinCC函数总结(最新版) 48页 1下载...  API播放音乐_计算机软件及应用_IT/计算机_专业资料。windows API MP3API...SND_SYNC 同步播放声音,在播放完后 PlaySound 函数才返回。 三.函数使用方法及...  } //调用 PlaySound 方法,播放音乐 Helpers.PlaySound(strFileName, IntPtr.Zero...MP3 等音频文件的类,要编写播放 MP3 等音频文件程序,必须使用第三方控件或 类...  音乐和视频应用实例 隐藏&& 多媒体应用设计媒体控制接口(Media Control Interface...用异步方式播放声音,PlaySound 函数在开始播放后立即返回。 pszSound 参数指定了 ...  (LPCWSTR) 第三种方法是用 PlaySound 播放系统声音,Windows 启动的声音是由 SystemStart 定义的系统声音,因此可以用下面的方法播放启动声音: PlaySound(&SystemStart&...  最简单的播放声音方法就是直接调用 VC++中提供的...二.将声音文件加入到程序中 使用 PlaySound 首先要...了修改,[2]相对较好) [2] 在 MFC 中添加音乐...  使得在音乐播放开始后 sndPlaySound 函数立刻返回执行后面的 代码,音乐的播放与...(必须放在引号里,且要用’\\’代表’\’,转义字符),播放方式不能有 SND_...  SND_ASYNC //用异步方式播放声音,PlaySound 函数在开始播放后立即返回。 SND_...用户关了游戏,音乐也不能继续播放,应该停止,所以很合理 (9)我可以做一个小...  调用 Windows 的 APT 函数 SndPlaySound 播放声音...方法在运行时,不能进行循环播放,不能中断音乐的播放...使用一键分享,轻松赚取财富值, 了解详情
嵌入播放器...自己参考别人写的一个简单音乐播放器,存在的一些问题_c语言吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:518,143贴子:
自己参考别人写的一个简单音乐播放器,存在的一些问题收藏
没到5级,所有代码文件都在网盘里和我一样新人想弄点软件来鼓励一下自己的也可以下载去参考参考啊这个是在老古董VC6上创建win32 application,通过托控件,然后围绕mciSendString这个函数来实现的。先说说能实现的功能吧:1:播放/停止,上一曲,下一曲,暂停/继续;过程中会根据循环模式选择播放哪里(只有全部
循环和单曲循环)2:批量添加歌曲文件,关闭播放器下次启动时自动加载;清空列表功能3:歌曲播放进度显示4:音量控制能实现的都是基本的东西了,下面是想要实现的和现在存在的问题,希望能指点:1:播放进度不能拖动播放,这个为什么跟音量不一样,好难理解。。2:其实弄过随机播放的模式的,但是生成随机数的函数编译能通过,可是都是同一个数。。
这是什么情况3:我这个窗口大小是固定的,如果要实现自由调节大小时控件的大小也跟着变,需要设置控
件还是编程呢,具体怎么实现4:这种窗口能美化吗?一下学太多也接受不来,先问这么多吧,编码很乱,各位下载来看的辛苦啦
京东电脑节,全民抢宝进行时!1999抢i7本,半价秒电脑,抢直降3000显示器
没图没人看,奈何'上不了附件啊。
赞,问下,打开文件按钮这些控件是怎么弄的,什么关键字搜索能搜到
用win32真难为你了。——来自 爱贴吧 Windows Phone 客户端
赞一个,我也在用VC6,我有VS2010但是VC6实在是用习惯了
1播放进度应放在一个定时器里面,每秒获取当前播放时间来拖动进度条 2随机需要种子,可以拿时间做种子, 3控件属性里面没有,需要编写
4可以稍微美化,不过还是很丑,,
厉害啊!绝对厉害!!!
这是用什么语言写的?
有改动,你看看,还有,TimeGetPos的settimer设置短一点比如100毫秒更容易看出拖动(不能 100%是因为你几个都用了定时器,三个事件同时进行,谁先被执行都是未知数)了,最后再说个:请不要用定时器来判断滚动条是否滑动。你要保证拖动能第一时间被知道,像按钮一样//设置播放时滚动条进度 void setTrackPos(HWND hwnd){// 设置滑块的最大值,最小值以及当时位置SendDlgItemMessage(hwnd,IDC_SLIDERTIME,TBM_SETRANGEMAX,(WPARAM)TRUE,(LPARAM)length);SendDlgItemMessage(hwnd,IDC_SLIDERTIME,TBM_SETRANGEMIN, (WPARAM)TRUE,(LPARAM)0);SendDlgItemMessage(hwnd,IDC_SLIDERTIME,TBM_SETPOS,(WPARAM)TRUE,(LPARAM)position);}//跟踪进度条回调函数,实现拖动播放 void CALLBACK TimeGetPos(HWND hwnd,UINT message,UINT iTimerID,DWORD dwTime){SendDlgItemMessage(hwnd,IDC_SLIDERTIME,TBM_SETRANGEMAX,(WPARAM)TRUE,(LPARAM)length);SendDlgItemMessage(hwnd,IDC_SLIDERTIME,TBM_SETRANGEMIN,(WPARAM)TRUE,(LPARAM)0);long timepos= SendMessage(GetDlgItem(hwnd,IDC_SLIDERTIME),TBM_GETPOS,0,0);wsprintf(zhiling,&play %s from %ld&,shortname,timepos);if(timepos!=position){mciSendString(zhiling,&&,0,0);mciSendString(zhiling,&&,0,0);}}
//请用消息去判断BOOL WINAPI Main_Proc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam){
switch(uMsg)
HANDLE_MSG(hWnd, WM_HSCROLL, Main_OnHScroll);//响应横向滑动条被拖动HANDLE_MSG(hWnd, WM_VSCROLL, Main_OnVScroll);//响应纵向滑动条被拖动}}void Main_OnHScroll(HWND hwnd, HWND hwndCtl, UINT code, int pos) {HWND hwndMusicSilder = GetDlgItem(hwnd,IDC_SLIDERJINDU);if(hwndMusicSilder == hwndCtl)// 判断音乐滑动条是否被拖动{
写拖动代码} } void Main_OnHScroll(HWND hwnd, HWND hwndCtl, UINT code, int pos) {HWND hwndMusicSilder = GetDlgItem(hwnd,IDC_SLIDERJINDU);if(hwndMusicSilder == hwndCtl)//判断音乐滑动条是否被拖动{
写音量代码} }
c语言海同强大的师资阵容,因人制定课程内容,分阶段学习.c语言就到正规IT技术培训机构-海同科技,培训IT技术面对面教学,免费重读!
看看…估计看不懂
换了WIN8.1 .用了vs2013.在@prosuce的帮助下终于实现了界面上的基本功能。小有成就啊。。
大神可否帮我解释一下这段程序??
void PlayMusic(char *music,HWND hwnd){
intv=GetMusicVolumn(music);
MaxVolumn=v;
SendMessage(GetDlgItem(hwnd,IDC_VOLUMN),TBM_SETRANGE,true,MAKELONG(0,v));
SendMessage(GetDlgItem(hwnd,IDC_VOLUMN),TBM_SETPOS,true,v/2);
char buf[MAX_PATH]={0};
wsprintf(buf,&play%s&,music);
mciSendString(buf,NULL,0,NULL);
SetMusicVolumn(music,v/2);
musiclength=GetMusicLen(PlayQueue);
SendMessage(GetDlgItem(hwnd,IDC_PROGRESS),TBM_SETRANGE,true,MAKELONG(0,musiclength/1000));
SendMessage(GetDlgItem(hwnd,IDC_PROGRESS),TBM_SETPOS,true,0);}
大神大神大神
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或}

我要回帖

更多关于 音乐播放器c语言代码 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信