首页 > 代码库 > 开源一个语音框架vchat

开源一个语音框架vchat

之前在冰冻做战斗内语音聊天,当时为了进度移植了voicechat,不过从代码质量上,voicechat设计的并不好,尤其是作为一个通用的聊天框架,并不易用。现在总算有空重写一套新的语音聊天库。

在接口上,提供了devices用于遍历设备。

class devices{public:static std::vector<const PaDeviceInfo*> getInputDevices();static std::vector<const PaDeviceInfo*> getOutputDevices();};

提供了sound用于音频设定

class sound{public:    sound();    ~sound();    void start();    void stop();    void th_func();    boost::signals2::signal<void(char *, int)> sigCapture;        bool setOutputDevice(PaDeviceIndex index);    bool setInputDevice(PaDeviceIndex index);    void setsoundsize();    void setechostate(bool on);private:    static int inputcallback(const void *input, void *output, unsigned long frameCount, const PaStreamCallbackTimeInfo *timeInfo,                             PaStreamCallbackFlags statusFlags, void *userData);    static int outputcallback(const void *input, void *output, unsigned long frameCount, const PaStreamCallbackTimeInfo *timeInfo,                               PaStreamCallbackFlags statusFlags, void *userData);private:    };

提供了client用于管理多人聊天

client * create_client(int index = 0);client * get_client(int index);typedef void(*handle_iterator_client)(std::map<int, client*> & set);void iterator_client_set(handle_iterator_client fn);void iterator_client_set(std::function<void(std::map<int, client*> &) > fn);bool destroy_client(int index);int client_count();

client提供了write_buff和read_buff对缓冲区做操作。

相对而言,接口要比voicechat清晰很多。

 

代码地址:https://github.com/qianqians/vchat.git

 

开源一个语音框架vchat