鱼C论坛

 找回密码
 立即注册
查看: 2133|回复: 2

C++如何实现背景音乐的循环播放

[复制链接]
发表于 2021-12-27 17:24:19 | 显示全部楼层 |阅读模式
20鱼币
我目前使用的播放背景音乐的方法是用mciSendString()函数代码如下:
  1. mciSendString("open ./素材/images/game_music.mp3 alias BGM", 0, 0, 0);
  2. mciSendString("play BGM",0,0,0);
复制代码


但是这种方式只能播放一次音乐,我想到的方法是用计时器每固定一段时间就重新播放一次,但是测试时音乐播放一下瞬间停止。

代码如下:

  1. //计时器
  2. bool timer(int ms, int id) {
  3.         static DWORD t[10];//注意这儿要把时间变量设置成静态的

  4.         if (clock() - t[id] > ms) {
  5.                 //t1 = t2;//让t1追上t2
  6.                 t[id] = clock();

  7.                 return true;
  8.         }

  9.         return false;
  10. }

  11. if (timer(5000, 3)) {


  12.                         //加载背景音乐
  13.                         mciSendString("open ./素材/images/game_music.mp3 alias BGM", 0, 0, 0);
  14.                         mciSendString("close BGM", 0, 0, 0);
  15.                         mciSendString("play BGM",0,0,0);
  16.                 }
复制代码



求教我的问题出在哪里,或者有什么方法可以循环播放音乐?

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-12-29 15:28:11 | 显示全部楼层
定时器外面加个while(1) 循环
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-12-30 02:07:41 | 显示全部楼层
T初始化了吗?试试VLC开源库(百度)应该会比这个简单,我最近也在学习做音视频服务器,客户端倒是简单
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-25 17:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表