检查与SDL2一起播放音乐
Checking for music playing with SDL2
使用SDL制作一个简单的游戏,并且从程序开始时我会在背景中播放音乐,但是我希望能够检查音乐何时停止播放,以便下一个曲目可以启动。我正在使用SDL_MIXER库加载和播放音乐。
bool loadTrack()
{
song = Mix_LoadMUS( "backgroundmusic.mp3" );
if (song == NULL)
{
return false;
}
else
{
Mix_PlayMusic(song, -1);
return true;
}
}
我正在加载和播放我所做的名为"音乐"的课程,歌曲在类构造函数中定义为null,然后将其命名为曲目名称,然后在该课程中的" LoadTrack"方法中播放它。我想在类中使用另一种可以调用的方法,如果曲目完成了播放,并且如果仍在播放,则返回true。我的问题是不知道如何检查轨道是否仍在播放,或者搅拌机库是否具有自己的功能来检查它是否仍在播放。
sdl_mixer具有Mix_PlayingMusic()
检查音乐是否在播放。但是,由于您将-1传递给Mix_PlayMusic
,因此它永远循环并永远播放,永远不会停止。
我认为您可以通过通过1(播放一次)而不是-1到Mix_PlayMusic
来"手动"重新启动歌曲。然后,在您的主循环中,在进入下一帧之前,请检查音乐是否已经停止播放,因此您可以重新启动或播放其他音乐。但是,这将导致每个重新启动之间的沉默差距很小(如果您的游戏以60fps运行,则大约1帧时间〜1/60)。因此,如果您只想无缝地循环音乐,最好让SDL_MIXER做到这一点,而不是像这样手工做。
相关文章:
- 在执行其他功能的同时播放动画(LED矩阵和Arduino/ESP8266)
- SFML纹理像播放器
- 根据用户回答声明"Players"。用户选择玩家数量。播放器是结构体
- 如何收听Windows当前正在播放的声音?
- GStreamer在开始任何播放之前进行搜索
- (SFML)按下键时,播放器构造函数未使用正确的动画进行更新
- 如何使用libav编写.mov文件,如果文件未正确完成,则可以播放
- C++新手,想知道如何使用VS code 2019播放音频文件
- 在C++不适用于猜数字游戏的情况下再次播放选项
- 按列随机播放 2D 矢量
- 音乐和音效无法在win32平台上播放?(Cocos2D-X)
- 如何避免音乐播放时出现微滞后
- 检查与SDL2一起播放音乐
- 需要这个播放音乐
- Playsound 跳过文件的前半秒,除非音乐播放器程序恰好正在运行
- 在C++/GTK中制作音乐播放器
- SDL_mixer停止播放某些事件的音乐
- .exe文件关闭时,我点击按钮在用户界面,应该播放音乐文件
- Mac上的c++音乐播放
- 如何部署c++应用程序,并为我的音乐播放器创建设置文件