使用SDL在后台播放MP3时产生声音效果

时间:2013-08-23 04:58:17

标签: c++ audio mp3 sdl

我正在编写一个程序,它不断生成声音效果并将它们输出到SDL回调函数中的声音缓冲区。现在我也需要在后台播放MP3。我该怎么做呢?我是否需要解码MP3并将其与声音效果混合在一起?

如有必要,我可以换到另一个图书馆。

1 个答案:

答案 0 :(得分:0)

你必须创建一个播放MP3的线程,你可以使用“pthread lib”你只需要在你的项目中添加pthread lib(不需要下载任何东西)

在一个帖子中,你的歌曲将会运行,而不会让你的主音色消失。

我用线程

给你写了一个例子
#include <pthread.h>

void * Play(void * ptr)
{
   /*
      HERE PLAY your MP3 
      you can also do a loop inside your thread
   */


   return NULL;
}

//in your main for example
int main()
{

    //create a thread that play yout song in backround of main 
    pthread_t thread_play_MP3;
    pthread_create(&thread_play_MP3,NULL,Play,NULL);

    while(1)
    {
       //  HERE : your main code 
    }

    return 0;
}