有关程序退出,播放音乐问题

Xx哼哼xX 2010-01-20 08:48:13
我想在程序退出的时候放一段小的音乐,可是每次,还没放完,就结束了,我想问问应该怎么做才能实现这一效果。

我这里是在From的Close事件中加入一条播放音乐的代码:sndPlaySound (SoundForm->GetShutdownSound.c_str(), SND_FILENAME | SND_ASYNC)。
...全文
123 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
fbmsyu 2010-01-20
  • 打赏
  • 举报
回复
先canclose=false
然后播放。
然后canclose=true。试试呢。

这个问题办法太多了随便捣鼓捣鼓就行了。
wtu_3205017 2010-01-20
  • 打赏
  • 举报
回复
程序真退出了,也就无法播放音乐了,可以做个假象 [

this->Hide();
Application->ProcessMessages();
AnsiString sPalyAlarmFileName = "C:\\WINDOWS\\Media\\Windows XP 关机.wav";
PlaySound(sPalyAlarmFileName.c_str(),NULL,SND_SYNC|SND_FILENAME);

/del]
Xx哼哼xX 2010-01-20
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 wtu_3205017 的回复:]
C/C++ code

#include"mmsystem.h"

AnsiString sFileName="C:\\WINDOWS\\Media\\Windows XP 关机.wav";
PlaySound(sFileName.c_str(),NULL,SND_SYNC|SND_FILENAME);//SND_SYNC标志要等待播?-
[/Quote]

方法很好,谢谢,但是还有点小问题,就是,这样程序将会定格,我想达到的最终效果是,程序正常关闭,但音乐还要播放完整。
Behard 2010-01-20
  • 打赏
  • 举报
回复
可以使用加载另外的程序播放呀,传递参数进去即可
wtu_3205017 2010-01-20
  • 打赏
  • 举报
回复


#include "mmsystem.h "

AnsiString sFileName = "C:\\WINDOWS\\Media\\Windows XP 关机.wav ";
PlaySound(sFileName.c_str(),NULL,SND_SYNC|SND_FILENAME);
//SND_SYNC标志要等待播放结束, 若SND_ASYNC 则不等播放结束就返回



wtu_3205017 2010-01-20
  • 打赏
  • 举报
回复

#include "mmsystem.h"

AnsiString sFileName = "C:\\WINDOWS\\Media\\Windows XP 关机.wav";
PlaySound(sFileName.c_str(),NULL,SND_SYNC|SND_FILENAME);
//SND_SYNC标志要等待播放结束, 若SND_ASYNC 则不等播放结束就返回
regersubadm 2010-01-20
  • 打赏
  • 举报
回复
这个需要事先清楚音乐的长度,然后在PlaySound后Sleep音乐的长度就好了。
Xx哼哼xX 2010-01-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zhgwbzhd 的回复:]
FormCloseQuery呢?
[/Quote]

用过了,不行,还是没有播完就结束了!
zhgwbzhd 2010-01-20
  • 打赏
  • 举报
回复
FormCloseQuery呢?

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧