C++ 在多线程中使用mciSendString播放音乐 下篇

本文介绍了在C++中使用多线程和mciSendString播放音乐的方法,包括创建音乐类和音乐管理类,利用消息队列实现线程间通信,避免互斥操作。示例程序演示了播放、停止、循环播放等功能,并指出mciSendString在处理mid文件时的特殊限制。

首先:

我还是一个多线程编程的新手,用的方法可能有不妥当的地方,有不足之处还望各位包涵。


通过上一篇,咱们已经对mciSendString在多线程中的使用要点有了一个初步认识,接下来该解决线程间信息传递的问题了。不过在这之前,先要进行一些准备工作。

首先,为了方便管理音乐,建立一个音乐类是很有必要的,这个类里面应该包括音乐的基本信息(文件路径、音量等)和状态信息(正在播放、停止、未打开等),假定这个音乐类编写如下:

class Music
{
protected:
	int	m_ID;				//编号,用于判断是否是同一个对象
	static int m_nNewID;		//下一个可用编号

	std::string filepath;	//为""表示不改变路径,否则改变音乐文件路径
	int Volume;	//音量,为负数表示不改变
	long StartPosition;	//音乐开始位置,为负数表示不改变
	long EndPosition;	//音乐结束位置,为负数表示不改变
	int NowPosition;		//用于记录暂停时的音乐位置

	bool StopPlayFlag;	//暂停播放的标志
	bool RepeatFlag;	//循环播放的标志
	bool KillFocusFlag;		//失去焦点标志
	bool SetFocusFlag;		//获取焦点标志

	//标志位,用于获取音乐状态
	bool Playing;	//是否正在播放
	bool Stopped;	//是否停止
	bool Opened;	//是否打开了音乐文件

public:
	Music();
	Music(std::string filepath,bool repeat=false);
	~Music();

	////////////////////////////////////////////////////////////////////
内容概要:本文系统阐述了利用BP神经网络结合Matlab编程实现对水质变化趋势进行科学预测的技术方法。通过构建BP神经网络模型,利用历史水质数据(如pH值、溶解氧、浊度等)进行训练,充分挖掘数据间的非线性关系,实现对未来水质状况的精准预测。该方法在处理复杂、非线性的环境数据方面表现出色,具有较强的泛化能力和实用性,适用于环境监测与水资源管理领域。文中配套提供了完整的Matlab代码实现方案,涵盖数据预处理、模型构建、训练优化及预测分析全过程,便于读者复现与应用。; 适合人群:具备一定机器学习理论基础和Matlab编程能力的科研人员、环境工程及相关专业的高校学生,以及从事水质监测、水污染预警和水资源管理的技术人员。; 使用场景及目标:①用于水质关键参数的时间序列预测,支持水环境长期趋势分析;②为水污染早期预警系统建设、水资源保护政策制定与生态环境治理提供可靠的数据支撑和技术手段;③作为教学实践案例,帮助学习者深入理解神经网络在环境科学中的建模流程与应用逻辑。; 阅读建议:建议读者结合文中提供的Matlab代码逐模块运行与调试,重点掌握数据归一化、网络结构设计、训练参数调优及预测结果可视化等关键步骤,同时鼓励将该模型迁移至其他类似时序预测任务中进行拓展验证与性能优化。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值