当前位置:操作系统 > 安卓/Android >>

Android平台下实现音视频通信的应用开发

   现在安卓很是火热,一大堆开发人员在捣鼓安卓平台的开发,相信大家也使用过QQ的语音视频对话功能,但是不知道大家有没有试过自己来开发一个基于安卓平台的音视频即时通讯的应用,这个应用必须能够做到跨平台

兼容Google、HTC、Moto、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, Su易做图ce su易做图ce, int lef,              int top, int right, int bottom);    
  /**       * 功能: 设置视频显示位置,或是刷新视频显示 返回值:0表示成功,否则为出错代码    
    * 参数:  
      * userid  用户ID       
* su易做图ce 视频显示界面,android客户端只需提供Su易做图ceView控件,内核自动将视频显示在控件上  
     * 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) {        
          Su易做图ceHolder holder = otherView.getHolder();  
//获得Su易做图ceView控件      
            holder.setFormat(PixelFormat.RGB_565);      
    //设置显示格式             
     holder.setFixedSize(anychat.GetUserVideoWidth(userID),  
                        anychat.GetUserVideoHeight(userID));   
//设置视频显示宽高              
    Su易做图ce s = holder.getSu易做图ce();        
        //获得视频画面           
       anychat.SetVideoPos(userID, s, 0, 0, 0, 0);    
//调用API显示视频画面           
       bOtherVideoOpened = true;              }          }       
   //判断本地视频是否已打开    
   

补充:移动开发 , Android ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,