简单做了个集成融云视频通话的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不然无法被呼叫方无法调出接听界面!

相关文章: