由于使用习惯,Linux在中国受欢迎程度远不如windows,相应的软件也比较少,尤其是音视频类的软件,但是,这并不代表就完全没有。下面介绍一款强大的音视频即时通讯平台给大家,它就是——Anychat for Linux SDK。
AnyChat是一套跨平台的音、视频即时通讯解决方案,基于先进的H.264视频编码标准、AAC音频编码标准与P2P技术,支持Windows、Linux、Mobile、Android、iOS、Mac等操作系统平台,提供客户端SDK、服务器端SDK,可与第三方平台紧密集成。
AnyChat for Linux基于LinuxKernel 2.6.x研发,提供标准C、C++语言开发接口。
AnyChat for Linux可与其它平台的AnyChat互联互通,连接同一个服务器程序,有关服务器的SDK可参考开发包。已经上传到51CTO,大家可以放心下载Linux平台上的音视频即时通讯开发平台
下面是客户端部分代码:
#include "anychat.h"
#include <stdlib.h>
#include <stdio.h>CAnyChat::CAnyChat()
{m_dwRemoteUserId = -1;
}CAnyChat::~CAnyChat()
{}//
void CAnyChat::OpenRemoteUserStream(void)
{if(m_dwRemoteUserId !=(DWORD)-1)      // already opned remoteuser streamreturn;DWORD dwUserNum = 0;BRAC_GetOnlineUser(NULL,dwUserNum);if(dwUserNum == 0)return;LPDWORD lpUserList = (LPDWORD)malloc(sizeof(DWORD)* dwUserNum);if(!lpUserList)return;BRAC_GetOnlineUser(lpUserList,dwUserNum);for(int i=0;i<(int)dwUserNum; i++){m_dwRemoteUserId =lpUserList[i];BRAC_UserCameraControl(m_dwRemoteUserId, TRUE);BRAC_UserSpeakControl(m_dwRemoteUserId, TRUE);break;}
}// 连接服务器消息
void CAnyChat::OnAnyChatConnectMessage(BOOL bSuccess)
{fprintf(stdout,"On Connect:bSuccess(%d)\r\n",(int)bSuccess);
}
// 用户登陆消息
void CAnyChat::OnAnyChatLoginMessage(DWORD dwUserId, DWORD dwErrorCode)
{fprintf(stdout,"On Login:dwUserId(%d), ErrorCode:%d\r\n",(int)dwUserId,dwErrorCode);
}
// 用户进入房间消息
void CAnyChat::OnAnyChatEnterRoomMessage(DWORD dwRoomId, DWORDdwErrorCode)
{fprintf(stdout,"On EnterRoom(dwRoomId=%d,dwErrorCode=%d)\r\n",dwRoomId,dwErrorCode);if(dwErrorCode == 0){BRAC_UserCameraControl(-1,TRUE);BRAC_UserSpeakControl(-1,TRUE);}
}
// 房间在线用户消息
void CAnyChat::OnAnyChatOnlineUserMessage(DWORD dwUserNum, DWORD dwRoomId)
{fprintf(stdout,"Onlineuser(dwUserNum=%d,dwRoomId=%d)\r\n",dwUserNum,dwRoomId);OpenRemoteUserStream();
}
// 用户打开/关闭音频设备设备消息
void CAnyChat::OnAnyChatMicStateChgMessage(DWORD dwUserId, BOOL bOpenMic)
{}
// 用户进入/退出房间消息
void CAnyChat::OnAnyChatUserAtRoomMessage(DWORD dwUserId, BOOL bEnter)
{fprintf(stdout,"OnUserAtRoom(dwUserId=%d, bEnter=%d)\r\n",(int)dwUserId,(int)bEnter);if(dwUserId == m_dwRemoteUserId&& !bEnter)m_dwRemoteUserId = -1;OpenRemoteUserStream();
}
//网络断开消息
void CAnyChat::OnAnyChatLinkCloseMessage(DWORD dwErrorCode)
{fprintf(stdout,"On LinkClose(reason=%d)\r\n",dwErrorCode);m_dwRemoteUserId = -1;
}// 用户摄像头状态改变消息
void CAnyChat::OnAnyChatCameraStateChgMessage(DWORD dwUserId, DWORDdwState)
{}
// 用户聊天模式改变消息
void CAnyChat::OnAnyChatChatModeChgMessage(DWORD dwUserId, BOOLbPublicChat)
{}
// 用户活动状态发生变化消息
void CAnyChat::OnAnyChatActiveStateChgMessage(DWORD dwUserId, DWORDdwState)
{}
// P2P连接状态变化消息
void CAnyChat::OnAnyChatP2PConnectStateMessage(DWORD dwUserId, DWORDdwState)
{fprintf(stdout,"On P2PConnect State Change(dwUserId=%d, dwState=%d)\r\n",(int)dwUserId,dwState);
}// 用户私聊请求消息
void CAnyChat::OnAnyChatPrivateRequestMessage(DWORD dwUserId, DWORDdwRequestId)
{}
// 用户私聊请求回复消息
void CAnyChat::OnAnyChatPrivateEchoMessage(DWORD dwUserId, DWORDdwErrorCode)
{}
// 用户退出私聊消息
void CAnyChat::OnAnyChatPrivateExitMessage(DWORD dwUserId, DWORDdwErrorCode)
{}// SDK警告消息
void CAnyChat::OnAnyChatSDKWarningMessage(DWORD dwErrorCode, DWORDdwReserved)
{}// 视频数据回调
void CAnyChat::OnAnyChatVideoDataCallBack(DWORD dwUserid, LPVOID lpBuf,DWORD dwLen, LPBITMAPINFOHEADER lpbmiHeader)
{}
// 音频数据回调
void CAnyChat::OnAnyChatAudioDataCallBack(DWORD dwUserid, LPVOID lpBuf,DWORD dwLen, LPWAVEFORMATEX lpWaveFormatEx)
{}
// 发送文字的回调函数
void CAnyChat::OnAnyChatTextMsgCallBack(DWORD dwFromUserid, DWORDdwToUserid, BOOL bSecret, LPCTSTR lpMsgBuf, DWORD dwLen)
{}
// 透明通道回调函数
void CAnyChat::OnAnyChatTransBufferCallBack(DWORD dwUserid, LPBYTE lpBuf,DWORD dwLen)
{}
// 透明通道数据扩展回调函数
void CAnyChat::OnAnyChatTransBufferExCallBack(DWORD dwUserid, LPBYTElpBuf, DWORD dwLen, DWORD wParam, DWORD lParam, DWORD dwTaskId)
{}
// 文件传输回调函数
void CAnyChat::OnAnyChatTransFileCallBack(DWORD dwUserid, LPCTSTRlpFileName, LPCTSTR lpTempFilePath, DWORD dwFileLength, DWORD wParam, DWORDlParam, DWORD dwTaskId)
{}
// 音量变化回调函数
void CAnyChat::OnAnyChatVolumeChangeCallBack(BRAC_AudioDevice device,DWORD dwCurrentVolume)
{}
// SDK Filter 通信数据回调函数
void CAnyChat::OnAnyChatSDKFilterDataCallBack(LPBYTE lpBuf, DWORD dwLen)
{}
// 录像、快照任务完成回调函数
void CAnyChat::OnAnyChatRecordSnapShotCallBack(DWORD dwUserid, LPCTSTRlpFileName, DWORD dwParam, BOOL bRecordType)
{}
// 异步消息通知回调函数
void CAnyChat::OnAnyChatNotifyMessageCallBack(DWORD dwNotifyMsg, DWORDwParam, DWORD lParam)
{}

转载于:https://blog.51cto.com/6359515/1189318

Linux平台上的音视频互动开发平台相关推荐

  1. 音视频互动开发平台之AnyChat SDK

    平台介绍 AnyChat音视频互动开发平台是一套跨平台的即时通讯解决方案,基于先进的H.264视频编码标准.AAC音频编码标准与P2P技术,支持高清视频,整合了佰锐科技在音视频编码.多媒体通讯领域领先 ...

  2. 全功能音视频互动开发平台

    全功能音视频互动开发平台 云智真音视频解决方案,即云智真音视频互动开发平台(云智真音视频SDK开发包)通过封装音视频编解码.流媒体处理以及P2P等专业复杂技术,为上层应用提供简单的API控制接口,实现 ...

  3. 音视频互动开发平台(SDK)

    AnyChat音视频互动开发平台(SDK) 采用了先进的DirectShow架构体系.DirectShow是一个开放性的应用框架,是一种适合于流媒体处理的架构.AnyChat音视频互动开发平台构建于D ...

  4. 专业的直播APP音视频互动开发平台

    专业的直播APP音视频互动开发平台,全互动音视频直播SDK,多人随机连麦,重现现场互动 云智真全互动音视频直播SDK,全球首个基于 UDP 的直播 SDK,只有毫秒级的延迟,10000 人语音连麦,多 ...

  5. AnyChat音视频互动开发平台(SDK)

    AnyChat音视频互动开发平台(SDK)采用了先进的DirectShow架构体系.DirectShow是一个开放性的应用框架,是一种适合于流媒体处理的架构.AnyChat音视频互动开发平台构建于Di ...

  6. Flutter开发之——网络请求-JsonToDart插件解析,AnyChat音视频互动开发平台

    在创建文件的位置,右键:New->JsonToDart 将Json结果填入文本框中,输入类名,点击Generate生成此类 三 旧类替换并显示 3.1 代码 Future futureArtic ...

  7. Android-Kotlin-印章类,AnyChat音视频互动开发平台

    sealed class MySealedPersonSex { /** MySealedPersonSex的>>> 类 男人

  8. 实时通讯音视频互动开发需求汇总

    实时通讯音视频互动开发需求汇总 实时通讯音视频互动开发就是通过开发一套跨平台的即时通讯音视频同步解决方案,基于先进的H.264视频编码标准.AAC音频编码标准与P2P技术,整合音视频编码.多媒体通讯开 ...

  9. iPhone4平台上实时音视频对话(经验)

    经过两个多月的奋战,从无到有,现在iPhone4平台上实时音视频对话已取得初步成果.其间查阅了很多资料,感谢这些信息的提供者.继往开来,我写下此文.我只列出要点,具体编码以及平台移植各位自己去努力吧. ...

最新文章

  1. Java反射在JVM的实现
  2. android ColorDrawable的使用
  3. LiveVideoStackCon讲师热身分享 ( 十一 ) —— 短视频APP的架构设计
  4. 数学公式、可视化图齐齐上阵,神经网络如何一步步走向最优化「看得见」!...
  5. win7开放80端口
  6. Window2003 IIS+MySQL+PHP+Zend环境配置
  7. 中国公有云三巨头,同时支持Rancher Kubernetes平台 1
  8. php cms 新闻采集,自动新闻采集软件快速入门图文详细教程
  9. MD5文件加解密工具类 MD5Utils
  10. python实现证件照换底色
  11. 护腰暖腹的好伙伴,让腰部远离寒风侵袭
  12. 【云IDE】取次花丛懒回顾
  13. dblp搜文献时各颜色含义
  14. Caché的studio如何Debug
  15. UICC 之 USIM 详解全系列——USIM App文件结构
  16. flask后端接受图片文件数据
  17. JSX 基本语法规则
  18. jq linux下载文件,Linux中的Json格式化神器jq下载与安装
  19. iosepub阅读器_iOS苹果手机上最好的3个mobi阅读器
  20. MacOS设置终端代理

热门文章

  1. mongodb启动时报错ERROR: child process failed, exited with error number 1
  2. IDEA 快速创建 SpringBoot 项目
  3. GlobeRanger优化航空RFID套件,并收到FAA适用性信函
  4. 远程视频监控之驱动篇(LED)
  5. 关于Nginx有没可能漏记请求日志或Nginx重复向后端发请求
  6. oracle表连接——处理连接过程中另外一张表没有相关数据不显示问题
  7. 沈志勇-百度大数据引擎与分析预测
  8. 剑指offer——面试题44:扑克牌顺子
  9. 如何设置 Web 服务器的权限之iis
  10. linux虚拟机调整分辨率