如何在c ++中为特定文本着色?喜欢: 这个是示例。 在上面我想要颜色"是"。我怎么能这样做?
答案 0 :(得分:2)
“C ++是一种语言”......说“如何在c ++中播放声音或在c ++中添加声音”本身并没有意义。要播放声音,您需要一个操作系统API。所以会发生什么:使用C ++,您可以访问操作系统API(特定于Windows,Mac,Linux),然后播放声音。
但是,操作系统API周围有解决方案(包装器)可以让您更轻松地完成这项工作。例如,SDL Framework与平台无关,因为它将为您处理操作系统。 (适用于Windows,Mac,Linux等)
这是使用SDL2 Framework播放声音的示例。看一下this code example for SDL 2(没有SDL_mixer)或this tutorial for SDL 1.2(它具有与音频部分相同的功能):
static Uint8 *audio_chunk;
static Uint32 audio_len;
static Uint8 *audio_pos;
/* The audio function callback takes the following parameters:
stream: A pointer to the audio buffer to be filled
len: The length (in bytes) of the audio buffer
*/
void fill_audio(void *udata, Uint8 *stream, int len)
{
/* Only play if we have data left */
if ( audio_len == 0 )
return;
/* Mix as much data as possible */
len = ( len > audio_len ? audio_len : len );
SDL_MixAudio(stream, audio_pos, len, SDL_MIX_MAXVOLUME);
audio_pos += len;
audio_len -= len;
}
/* Load the audio data ... */
;;;;;
audio_pos = audio_chunk;
/* Let the callback function play the audio chunk */
SDL_PauseAudio(0);
/* Do some processing */
;;;;;
/* Wait for sound to complete */
while ( audio_len > 0 ) {
SDL_Delay(100); /* Sleep 1/10 second */
}
SDL_CloseAudio();
同样,这只是一个例子。也许你只想播放一个“wave”文件而不用担心wave缓冲等等......
例如,在Windows上,您具有PlaySound()
功能。有了这个,你可以给出文件名(.wav),就是这样。
https://msdn.microsoft.com/en-us/library/windows/desktop/dd743680(v=vs.85).aspx
对于其他平台,可能存在类似的东西......祝你好运; - )
答案 1 :(得分:1)
您无法在标准 C++14中执行此操作(播放声音),因为该标准不了解与声音相关的内容。您需要一些额外的(通常是特定于操作系统的)库,例如SFML或Qt;两者都可以在多个系统上运行,并且正在抽象operating-system特定服务。
如果您使用ANSI escape codes到终端,可以尝试BELL character。
请注意,您的用户可能甚至没有任何方式可以听到声音(例如,他的计算机或聋人用户上没有 - 或残疾人)。