低音"Play"流

BASS "Play" a stream

本文关键字:Play 低音      更新时间:2023-10-16

开发者朋友们好,

我有一个问题,我正在做一款射击游戏,但我不确定如何执行爆炸发生时,因为爆炸总是相同的声音结束,可以在短时间内发生,即,声音甚至没有结束,另一个爆炸发生了。我的问题是,如何在同一个流中"玩"不止一次?

谢谢!

下面是一个非常简单的例子:

int device = -1; // Default Sounddevice
int freq = 44100; // Sample rate (Hz)
HSTREAM streamHandle; // Handle for open stream

/* Initialize output device */
BASS_Init(device, freq, 0, 0, NULL);

/* Load your soundfile and play it */
streamHandle = BASS_StreamCreateFile(FALSE, "your_file.mp3", 0, 0, 0);
BASS_ChannelPlay(streamHandle, FALSE);

/* As very last, close Bass */
BASS_Free();

虽然这个例子只播放一次声音文件,但您可以在每次需要声音时创建一个新的句柄。但是BASS_Init()BASS_Free()只能运行一次。

另一个解决方案是将声音作为样本播放:

HSAMPLE streamHandle; // Handle for sample
HCHANNEL channel; // Handle for open channel of the sample

/* Initialize output device */
BASS_Init(device, freq, 0, 0, NULL);

/* Load sample and play it */
streamHandle = BASS_SampleLoad(FALSE, "your_file.mp3", 0, 0, 0);
channel = BASS_SampleGetChannel(streamHandle, FALSE);

/* Once you are done with your sample you should free it */
BASS_SampleFree(streamHandle);
/* As very last, close Bass */
BASS_Free();

假设我们正在谈论相同的低音音频API,然后导航到BASSChannelsBass_ChannelPlay()的在线文档。调用Bass_ChannelPlay()传递你现有的句柄为爆炸和设置restarttrue -查看文档了解更多信息。