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

音视频开发的P2P技术

时间:2014-12-11 15:54:14      阅读:214      评论:0      收藏:0      [点我收藏+]

标签:音视频   即时通讯   音视频开发   多媒体   

 

首要压缩包能够从这儿取得: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技术

标签:音视频   即时通讯   音视频开发   多媒体   

原文地址:http://blog.csdn.net/qq_23531945/article/details/41866675

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