首页 > 代码库 > 音视频开发的P2P技术
音视频开发的P2P技术
首要压缩包能够从这儿取得:http://anychat.oss.aliyuncs.com/AnyChatCoreSDK_Win32_V5.1.zip
也可进去网站下载其他版别(www.anychat.cn)
下载后,首要将其解压到一个临时文件夹中,然后开端后续作业。
编译后取得的是.lib文件。
AnyChat SDK向上层运用敞开了内核的P2P连接战略,能够让运用程序来干涉内核的P2P连接,以满意各种场合下的运用需求。
设置P2P连接战略的典型代码如下:
1.DWORD dwP2PPolitic = 3;
2.BRAC_SetSDKOption(BRAC_SO_NETWORK_P2PPOLITIC,(constchar*)&dwP2PPolitic,sizeof(DWORD));
当时敞开的P2P连接战略包含如下值:
0 制止P2P连接,不自动与其它用户树立P2P连接,也不接受其它用户主张的P2P连接恳求;
1 服务器操控P2P[默许],自动与当时房间内的一切用户树立P2P;
2 上层运用操控P2P连接,不自动与其它用户树立P2P连接,但可接受其它用户主张的P2P连接恳求,但运用程序能够下达与指定用户树立P2P连接的指令,收到上层运用的指令后,再测验与该用户树立P2P连接;
3 按需树立P2P连接,在需求树立P2P连接时(如恳求对方的音频、视频数据),便自动测验与该用户树立P2P连接,也自动接受其它用户的P2P连接恳求;
P2P连接树立成功,或是断时,会经过P2P状况改变音讯告诉上层运用。
由于每个客户端的P2P连接资本是有限的(每个客户端最多可与30个用户树立P2P连接),所以不一样的运用环境,需求设置不一样的P2P连接战略。
咱们主张一个运用平台上,均选用一样的P2P连接战略,不然也许出现特别状况,例如:A用户选用“上层运用操控P2P连接”战略,B用户选用“服务器操控P2P”战略,两个用户进入房间后,虽然上层运用没有向A用户下达与B用户树立P2P连接的恳求,但实际上A、B两用户之间仍然会树立P2P连接,由于B用户会自动与A用户树立连接。
AnyChat SDK默许是“服务器操控P2P”战略,用户进入房间后,将自动与房间内的一切用户树立P2P,该形式适用于同一个房间不超过50个用户(考虑到与部分客户端的P2P连接也许树立不成功)的运用,假如同一个房间的用户数较多,主张上层运用运用“上层运用操控P2P连接”或是“按需树立P2P连接”形式,使得客户端能够与需求的用户树立P2P,而不至于出现P2P连接资本被无关的用户占用的状况。
P2P连接战略能够初始化成功以后动态调整,但只要“制止P2P连接”形式被设置后,会断开与其它用户的P2P连接,设置其它的形式,均不会断开现有P2P连接。当客户端设置为“制止P2P连接”战略后,一切的音频、视频数据(包含自个传给其它用户,其它用户传给自个)都将经过服务器中转,可适用于某些特别的运用场合。
在一切P2P连接战略中,最优的战略是“按需树立P2P连接”,但没有将其作为SDK的默许P2P连接战略,主要是该战略是新增,而为了兼容老版别的SDK,便将“服务器操控P2P”战略设置为默许连接战略。
当设置为“上层运用操控P2P连接”以后,便能够经过SDK供给的接口自动与指定的用户树立P2P连接,典型代码如下:
1.DWORD dwTargetUserId =100;
2.BRAC_SetSDKOption(BRAC_SO_NETWORK_P2PCONNECT,(constchar*)&dwTargetUserId,sizeof(DWORD));
注:上述一切“树立P2P连接”并不代表P2P连接一定能树立成功,这与实际的网络状况有关,仅仅表明“测验与对方树立P2P连接”。
更多技术性问答可进入http://bbs.anychat.cn
音视频开发的P2P技术