关于mciSendString播放mp3的问题

0

用多线程关闭背景音乐失败,怎么解决

/*多线程函数*/
void* Function_t_background_close(void* Param)
{
	mciSendString("stop 123.mp3", 0, 0, 0);
	mciSendString("close 123.mp3", 0, 0, 0);
	return NULL;
}

void* Function_t_background(void* Param)
{
	mciSendString("open 123.mp3", 0, 0, 0);
	mciSendString("play 123.mp3 repeat", 0, 0, 0);

	return NULL;
}

引用,snakeStatus 返回 0 后只能播放结束音效,无法结束背景音乐(VS2012)

/*主函数中部分代码*/
if(snakeStatus(pWall) == 0) //判断状态是否结束
{
	pthread_create(&pid3, NULL, Function_t_over, NULL); //结束音效
	pthread_create(&pid2, NULL, Function_t_background_close, NULL);//结束背景音乐
	break;
}
ava
W。

2020-6-17

0

你必须保证所有的 mciSendString 调用都在同一个线程中进行。

ava
慢羊羊

2020-6-17

已解决,谢谢 -  W。  2020-6-18
技术讨论社区