问题:在线程中使用Duilib创建的控件,结果在mciSendCommand总是出问题。
需求:想做一个音频小文件合并成大文件的功能。需要在控件中显示当前的合并进度。
方法一:直接在主线程中做合并,通过回调的方式通知进度条刷新显示进度,文件合并能成功,但是进度条(使用CProgressUI控件)一直没有变化。
于是,想在线程中合并调用合并函数
方法二:创建线程,在线程中调用合并函数,结果合并失败。
方法二的出错点:由于默认打开播放第一个小文件(使用mciSendCommand),所以在合并前需要关闭当前打开的文件。当使用mciSendCommand关闭当前文件时,返回值总是303(在自动打开的设备上运行指定的命令。请等到设备关闭后,再试一次。)。