集成融云的视频通话功能

简单做了个集成融云视频通话的demo,这里是为了方便测试所以就固定了2个token!
首先看一个项目目录
在这里插入图片描述
上面是目录结构比较简单,在融云官网将下面的下载下来在这里插入图片描述
上面的压缩包包含了我们需要的SDK,然后在studio 中用Import Moudle 方式将这几个文件导入项目中然后在app的gradle中添加依赖在这里插入图片描述
在这个之前最好先去融云官网注册一个账号,注册好后,在平台上建好项目在这里插入图片描述
这个是我建立的一个项目,开通了音视频服务,免费送了1000分钟,这样可以够测试用,先不用充值!这样就为后面获取appkey 和token 做好准备!
可以根据官网的集成的文档将你建立项目的appkey写入IMLIB中!
下面来看看项目:
比较简单:
在这里插入图片描述

  @Override
    public void onCreate() {
        super.onCreate();
        RongIM.init(this);
    }
    public static String getCurProcessName(Context context) {
        int pid = android.os.Process.myPid();
        ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
        for (ActivityManager.RunningAppProcessInfo appProcess : activityManager.getRunningAppProcesses()) {
            if (appProcess.pid == pid) {
                return appProcess.processName;
            }
        }
        return null;
    }

在onCreat()进行 RongIM.init(this)的初始化!

package rongtong.gisocn.com;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Toast;

import com.bailingcloud.bailingvideo.engine.binstack.util.FinLog;

import java.math.RoundingMode;
import java.util.Locale;

import io.rong.callkit.RongCallAction;
import io.rong.callkit.RongCallModule;
import io.rong.callkit.RongVoIPIntent;
import io.rong.calllib.IRongReceivedCallListener;
import io.rong.calllib.RongCallClient;
import io.rong.calllib.RongCallSession;
import io.rong.imkit.RongIM;
import io.rong.imlib.RongIMClient;
import io.rong.imlib.model.Conversation;

public class MainActivity extends AppCompatActivity {
    private String useid;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        String s ="mrzAPLdV0WJBEVGMw3KMVnsVVRJw+MrQAVLcaePa/G0glSLp1g90djAx7DeKB9IEY8TmxTTgZ/5dD5uY7OydJQ=="
                ;
        login(s);
    }
    public  void login(String cacheToken){
        if (getApplicationInfo().packageName.equals(App.getCurProcessName(getApplicationContext()))) {
            RongIM.connect(cacheToken, new RongIMClient.ConnectCallback() {
                @Override
                public void onTokenIncorrect() {

                }

                @Override
                public void onSuccess(String s) {
                    Log.d("LoginActivity", "--onSuccess" + s);
                    Toast.makeText(MainActivity.this, "成功", Toast.LENGTH_LONG).show();
                   useid=s;
                 
                }

                @Override
                public void onError(RongIMClient.ErrorCode e) {

                }
            });
        }
    }
    public void startTalk(View view){

        Intent intent = new Intent(RongVoIPIntent.RONG_INTENT_ACTION_VOIP_SINGLEAUDIO);
        intent.putExtra("conversationType", Conversation.ConversationType.PRIVATE.getName().toLowerCase());
        intent.putExtra("targetId", "as");
        intent.putExtra("callAction", RongCallAction.ACTION_OUTGOING_CALL.getName());
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        intent.setPackage(getPackageName());
        getApplicationContext().startActivity(intent);
//                    RongCallKit.startSingleCall(mContext,"kevin", RongCallKit.CallMediaType.CALL_MEDIA_TYPE_VIDEO);

    }
    public void starVoide(View view){
        Intent intent = new Intent(RongVoIPIntent.RONG_INTENT_ACTION_VOIP_SINGLEVIDEO);
        intent.putExtra("conversationType", Conversation.ConversationType.PRIVATE.getName().toLowerCase(Locale.US));
        intent.putExtra("targetId", "as");
        intent.putExtra("callAction", RongCallAction.ACTION_OUTGOING_CALL.getName());
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

        intent.setPackage(getPackageName());
        getApplicationContext().startActivity(intent);
    }

   
}

上面就是通话的代码!
String s =“mrzAPLdV0WJBEVGMw3KMVnsVVRJw+MrQAVLcaePa/G0glSLp1g90djAx7DeKB9IEY8TmxTTgZ/5dD5uY7OydJQ==”
这个就是我们在项目添加了人员后,同过平台上的api调试,根据userID获取到的,这个userId是个人自己创建的!比如我们想由A和B通话,在token处填写的 是A的, intent.putExtra(“targetId”, “as”)在这里填写的是B的userId!另外就是因为只是单纯的通话没有列表之类的,所以RongCallModule类里的 private boolean mViewLoaded =true;设置为true不然无法被呼叫方无法调出接听界面!

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值