安卓平台的音视频互动开发平台

  • 兼容Google、HTC、小米、Samsung、华为等主流硬件设备
  • 支持iOS、Web、PC等设备和Android之间的互联互通
  • 视频会话时,默认打开前置摄像头;
  • 能够有Java音视频采集、显示驱动,兼容更多Android设备;
  • 想要在Android平台下实现音视频通信,最快捷的方法是寻找开源项目或调用其他公司封装好的API,接下来小编介绍一款不错的SDK包给大家,(安卓平台的音视频互动开发平台)下面是一些关于如何调用相关API接口的方法,大家可以相互交流交流。

Android通信平台相关API方法

    // 初始化SDK      public native int InitSDK(int osver, int flags);      // 连接服务器      public native int Connect(String serverip, int port);      // 登录系统      public native int Login(String username, String password);      // 进入房间(房间ID)      public native int EnterRoom(int roomid, String password);      // 进入房间(房间名称)      public native int EnterRoomEx(String roomname, String password);      // 退出房间      public native int LeaveRoom(int roomid);      // 设置视频显示位置      public native int SetVideoPos(int userid, Surface surface, int lef,              int top, int right, int bottom);      /**       * 功能: 设置视频显示位置,或是刷新视频显示 返回值:0表示成功,否则为出错代码        * 参数:        * userid  用户ID        * surface 视频显示界面,android客户端只需提供SurfaceView控件,内核自动将视频显示在控件上       * lef,top,right,bottom视频显示位置信息       */     // 注销登录      public native int Logout();      // 释放资源      public native int Release();

一、初始化SDK

初始化SDK是首先要完成的,用于设置SDK的一些行为,包括设置对应的回调函数。代码如下:

    //初始化SDK      private void InitialSDK() {          if (anychat == null) {              anychat = new AnyChatCoreSDK();              //设置基本事件回调函数              anychat.SetBaseEvent(this);              if (configEntity.useARMv6Lib != 0)                  anychat.SetSDKOptionInt(AnyChatDefine.                          BRAC_SO_CORESDK_USEARMV6LIB, 1);            //使用ARMv6指令集              anychat.InitSDK(android.os.Build.VERSION.SDK_INT, 0);   //初始化SDK 的一个参数是android API版本              bNeedRelease = true;          }      }

二、登录系统

当初始化SDK完成之后,便可以实现连接服务器、验证用户身份、用户登录等。

        //连接服务器          anychat.Connect("211.155.25.90", 8906);          //登录系统          anychat.Login("android","");

连接服务器和登录系统都是一个异步的过程,调用后会立即返回。在回调函数中根据返回代码判断服务器是否连接成功和登录成功。

三、进入房间

登录成功后就可进入相应的房间,只有在相同房间的用户才能进行音视频通信。代码如下

1、进入房间

//进入1号房间  anychat.EnterRoom(1, "");

进入房间后系统会将该房间在线用户发送给客户端,只有在同一个房间用户才能进行音视频互交、文字聊天、文件传输等。当新用户进入房间或用户下线,都会触发异步消息通知上层应用更改状态。

2、文字聊天

成功进入房间后,便可调用API接口向指定用户或房间中所有在线用户发送文字 聊天消息。

        //发送文字聊天消息          String message = messageEditText.getText().toString();          anychat.SendTextMessage(-1, 0,message);

其他用户收到文字聊天消息会触发相应的回调函数并将聊天消息显示在界面上。

3、请求其他用户的音视频

        // 请求对方的视频流           anychat.UserCameraControl(userID, 1);          // 请求对方的音频流           anychat.UserSpeakControl(userID, 1);

4、音视频的显示与播放

       //判断远程用户视频是否已打开          if (!bOtherVideoOpened) {              if (anychat.GetCameraState(userID) == 2                     && anychat.GetUserVideoWidth(userID) != 0) {                  SurfaceHolder holder = otherView.getHolder();   //获得SurfaceView控件                  holder.setFormat(PixelFormat.RGB_565);          //设置显示格式                  holder.setFixedSize(anychat.GetUserVideoWidth(userID),                          anychat.GetUserVideoHeight(userID));    //设置视频显示宽高                  Surface s = holder.getSurface();                //获得视频画面                  anychat.SetVideoPos(userID, s, 0, 0, 0, 0);     //调用API显示视频画面                  bOtherVideoOpened = true;              }          }          //判断本地视频是否已打开          if (!bSelfVideoOpened) {              if (anychat.GetCameraState(-1) == 2                     && anychat.GetUserVideoWidth(-1) != 0) {                  SurfaceHolder holder = myView.getHolder();      //获得SurfaceView控件                  holder.setFormat(PixelFormat.RGB_565);          //设置显示格式                  holder.setFixedSize(anychat.GetUserVideoWidth(-1),                          anychat.GetUserVideoHeight(-1));        //设置视频显示宽高                  Surface s = holder.getSurface();                //获得视频画面                  anychat.SetVideoPos(-1, s, 0, 0, 0, 0);         //调用API显示视频画面                  bSelfVideoOpened = true;              }          }

Android程序中,当收到用户的媒体流数据时,Android客户端只需提供一个SurfaceView控件,内核自动将视频媒体流数据显示在该控件上并播放声音。

四、释放资源

与前面讲的连接服务器、登录系统、进入房间对应的的是离开房间、注销系统、释放资源。代码如下:

    protected void onDestroy() {      //离开房间      anychat.LeaveRoom(-1);      //注销登录      anychat.Logout();      //释放资源 关闭SDK 不再返回登录界面      anychat.Release(); }

离开房间后可再进入房间,但是注销登录和释放资源后,SDK将不再工作。在Activity生命周期结束的时候可以将占用资源释放,程序退出。

时间: 2024-12-25 07:20:41

安卓平台的音视频互动开发平台的相关文章

音视频解决方案Web平台之背景水印更改

AnyChat SDK(AnyChat音视频互动开发平台)是一套跨平台的(*)即时通讯解决方案,基于先进的H.264视频编码标准.AAC音频编码标准与P2P技术,支持高清视频,整合了佰锐科技在音视频编码.多媒体通讯领域领先的开发技术和丰富的产品经验而设计的高质量.宽适应性.分布式.模块化的网络音视频互动平台.支持Windows.Web.Android.iOS.Linux等跨平台互联互通 其中自从AnyChat r4092版本开始,AnyChat for Web SDK支持设置本地图片为界面背景.

iOS音视频项目开发(跨平台)

苹果手机带动了IOS的火热,一大堆开发人员在捣鼓IOS平台的开发,相信大家也使用过QQ的语音视频对话功能,但是不知道大家有没有试过自己来开发一个基于IOS平台的音视频即时通讯的应用,这个应用必须能够做到跨平台.现在介绍两种方法使用IOS与其他平台的音视频通话. 首先就是使用一个跨平台的音视频通讯平台即可,这是作为非专业技术人员也可以做到的,下面就先介绍第一种:只需三个条件: 1.手机有网络连接: 2.有AnyChat for iOS SDK: 3.对方PC或手机有以上条件. AnyChat音视频

即时通讯 手机音视频技术开发方案

"SDK即时通讯平台"是一套跨平台的即时通讯解决方案,基于先进的H.264视频编码标准.AAC音频编码标准与P2P技术,支持高清视频,整合了佰锐科技在音视频编码.多媒体通讯领域领先的开发技术和丰富的产品经验而设计的高质量.宽适应性.分布式.模块化的网络音视频互动平台. "SDK即时通讯平台"包含了音视频处理模块(采集.编解码).流媒体管理模块(丢包重传.抖动平滑.动态缓冲).流媒体播放模块(多路混音.音视频同步)以及P2P网络模块(NAT穿透.UPnP支持.IP组播

安卓平台的手机音视频通讯开发

现在在公交.地铁.道路上都可以看到人们拿着手机,打开微信,按照然后进行语音通话.音视频通话随着现在智能手机的普及越来月随处可见,4G网络的快速发展为现在音视频即时通讯的实现提供了网络通道上的可能现在即音视频时通讯是最为流行的通讯方式,而各种各样的即时通讯软件也层出不穷:服务提供商也提供了越来越丰富的通讯服务功能.目前在安卓平台下的主流即时通讯软件有:AnyChat.QQ.ICQ.MSN.新浪微博等.随着互联网的发展,即时通讯的运用将日益广泛. 目前即时通讯行业,很多开发上在进行音视频技术开发,目

8.8全民健身日,扒一扒音视频互动与健身的那些事儿

8.8全民健身日,扒一扒音视频互动与健身的那些事儿 偶然间,翻开日历,今天是8月8日——全名健身日,作为一名体育运动爱好者.IT工作者,今天就来扒一扒音视频互动与健康的哪些事儿... 北京体博会现场照片,用户正在使用AnyChat与上海世博会现场语音视频连线,并接受中央电视台等媒体采访. (北京市副市长刘敬民在爱动健身营开幕式上致辞) 集成“AnyChat在线音视频互动平台”的“爱动在线运动游戏平台”是2010北京奥运城市体育文化节的一个亮点,集中体现了现代体育的大众性.互动性和趣味性,既满足了

实时音视频互动系列(下):基于 WebRTC 技术的实战解析

在 WebRTC 项目中,又拍云团队做到了覆盖系统全局,保证项目进程流畅.这牵涉到主要三大块技术点: 网络端.服务端的开发和传输算法 WebRTC 协议中牵扯到服务端的应用协议和信令服务 客户端iOS.安卓 H.264 编解码技术 △ WebRTC 技术点 实时音视频互动必须遵守三大点 必须基于 UDP 协议,否则不要谈实时 因为 TCP 协议的重传机制(传输保障)会导致累积延迟问题,用 UDP 协议没有传输保障机制,但需要自行完善丢包容错逻辑. 又拍云音视频互动方案是基于UDP 协议,使用 T

即时通讯 iOS音视频技术开发

随着iOS的强势面世,伴随着其出色的应用,一大堆开发人员在捣鼓IOS平台的开发,而基于iOS的音视频二次开发应用也为更多的程序员猛攻猛打.相信大家也使用过QQ的语音视频对话功能,但是不知道大家有没有试过自己来开发一个基于IOS平台的音视频即时通讯的应用,这个应用必须能够做到跨平台 支持iOS平台设备上的音频即时通讯应用开发 提供Objective-C语言API接口,开放示例源代码 集成H.264.AAC.AMR等编解码技术 封装音视频的采集.编解码.传输.显示和播放等模块 支持Android.W

iOS音视频SDK开发技术解决方案

随着iOS的强势面世,伴随着其出色的应用,一大堆开发人员在捣鼓IOS平台的开发,而基于iOS的音视频二次开发应用也为更多的程序员猛攻猛打.相信大家也使用过QQ的语音视频对话功能,但是不知道大家有没有试过自己来开发一个基于IOS平台的音视频即时通讯的应用,这个应用必须能够做到跨平台 ·                      支持iOS平台设备上的音频即时通讯应用开发 ·                      提供Objective-C语言API接口,开放示例源代码 ·           

国内物联网平台初探(五):机智云IoT物联网云服务平台及智能硬件自助开发平台

国内物联网平台初探(五)——机智云IoT物联网云服务平台及智能硬件自助开发平台 马智 平台定位 机智云平台是致力于物联网.智能硬件云服务的开放平台.平台提供了从定义产品.设备端开发调试.应用开发.产测.运营管理等覆盖智能硬件接入到运营管理全生命周期服务的能力. 机智云平台为开发者提供了自助式智能硬件开发工具与开放的云端服务.通过傻瓜化的工具.不断增强的SDK与API服务能力最大限度降低了物联网硬件开发的技术门槛,降低研发成本,提升开发者的产品投产速度,帮助开发者进行硬件智能化升级,更好的连接.服