码迷,mamicode.com
首页 > 其他好文 > 详细

开源一个语音框架vchat

时间:2014-09-11 22:10:32      阅读:739      评论:0      收藏:0      [点我收藏+]

标签:des   style   blog   http   color   io   os   ar   art   

之前在冰冻做战斗内语音聊天,当时为了进度移植了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

标签:des   style   blog   http   color   io   os   ar   art   

原文地址:http://www.cnblogs.com/qianqians/p/3967325.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!