设为首页收藏本站

AnyChat技术支持论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 8871|回复: 11
打印 上一主题 下一主题

接收端只有音频而无视频显示

[复制链接]

3

主题

14

帖子

61

积分

注册会员

Rank: 2

积分
61
跳转到指定楼层
楼主
发表于 2014-5-21 21:22:23 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式
各位AnyChat的工程师,晚上好

我在将demo中liveVideoChat中的即拍即传功能移入我自己制作的测试程序中时,发现程序可以成功登录、进入房间并在本地有拍摄图像显示,但在anychartserver端使用给出的demo接收时,却仅有音频数据,没有视频数据(用户名前方摄像头为灰色,话筒为红色),琢磨不透是怎么回事


还盼不吝指教,多谢了
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

249

主题

2967

帖子

9108

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
9108
12#
发表于 2014-5-22 10:20:29 | 只看该作者
您好,请更新SDK到最新版本:http://www.anychat.cn/download.html?t=Android,注意同步替换.so库和.java源代码,便可解决摄像头状态不正常的问题。
回复 支持 反对

使用道具 举报

3

主题

14

帖子

61

积分

注册会员

Rank: 2

积分
61
11#
 楼主| 发表于 2014-5-22 10:03:55 | 只看该作者
廖斌 发表于 2014-5-22 09:54
hi,您的代码看了,需要将放到之后

能收到视频了~ 恩 但貌似接收端摄像头那个图标还是没有变红... 不过没多大影响,哈哈~ 在此拜谢了
回复 支持 反对

使用道具 举报

3

主题

14

帖子

61

积分

注册会员

Rank: 2

积分
61
10#
 楼主| 发表于 2014-5-22 09:55:54 | 只看该作者
廖斌 发表于 2014-5-22 09:54
hi,您的代码看了,需要将放到之后

哦 好的 我再试试
回复 支持 反对

使用道具 举报

5

主题

1269

帖子

3677

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3677
9#
发表于 2014-5-22 09:54:33 | 只看该作者
kristek 发表于 2014-5-22 09:51
activity 代码如下接收端显示如下

hi,您的代码看了,需要将
  1. applyVideoConfig
复制代码
放到
  1. anychat.InitSDK(android.os.Build.VERSION.SDK_INT, 0)
复制代码
之后
回复 支持 反对

使用道具 举报

3

主题

14

帖子

61

积分

注册会员

Rank: 2

积分
61
8#
 楼主| 发表于 2014-5-22 09:53:55 | 只看该作者
廖斌 发表于 2014-5-22 09:33
您好,进入视频通话之前调用标准demo中hallactivity中的ApplyVideoConfig函数试下

您好, 代码我已上传, 我在InitialSDK方法中已调用了ApplyVideoConfig函数...苦思不得解
回复 支持 反对

使用道具 举报

3

主题

14

帖子

61

积分

注册会员

Rank: 2

积分
61
7#
 楼主| 发表于 2014-5-22 09:51:46 | 只看该作者
activity 代码如下
  1. package net.nci.demo.activity;

  2. import java.util.Date;
  3. import java.util.Timer;
  4. import java.util.TimerTask;

  5. import net.nci.core.utils.LogUtil;
  6. import net.nci.demo.R;
  7. import net.nci.demo.service.ConfigEntity;
  8. import android.annotation.SuppressLint;
  9. import android.app.Activity;
  10. import android.content.Context;
  11. import android.content.SharedPreferences;
  12. import android.graphics.PixelFormat;
  13. import android.os.Bundle;
  14. import android.os.Handler;
  15. import android.os.Message;
  16. import android.util.Log;
  17. import android.view.Surface;
  18. import android.view.SurfaceHolder;
  19. import android.view.SurfaceView;
  20. import android.view.View;
  21. import android.view.View.OnClickListener;
  22. import android.widget.Button;
  23. import android.widget.ImageView;
  24. import android.widget.ProgressBar;

  25. import com.bairuitech.anychat.AnyChatBaseEvent;
  26. import com.bairuitech.anychat.AnyChatCoreSDK;
  27. import com.bairuitech.anychat.AnyChatDefine;

  28. public class LiveVideoActivity extends Activity implements AnyChatBaseEvent {

  29.        
  30.         private static final String TAG = LogUtil.makeLogTag(LiveVideoActivity.class);

  31.         private SurfaceView videoView;
  32.         ProgressBar volumeProgressBar;
  33.         private ImageView mCameraSwitchImage; // 前后摄像头切换按钮

  34.         public AnyChatCoreSDK anychat;
  35.         int userID = -1;
  36.         int otherVideoIndex = -1; // 视频显示序号(Java视频显示驱动需要)
  37.         private ConfigEntity configEntity;

  38.         private boolean bVideoOpened = false; // 视频是否已打开
  39.         private boolean bSuccessEnterRoom = false; // 是否已成功进入房间

  40.         private boolean bOnPaused = false;

  41.         private Timer mTimer = new Timer(true);
  42.         private TimerTask mTimerTask;
  43.         private Handler handler = null;

  44.         private Button quitBtn;
  45.         private boolean bShowQuitBtn = true; // 是否已显示退出按钮
  46.         private Date mLastShowQuitBtnTime = new Date(); // 开始显示退出按钮的时间

  47.         @SuppressLint("HandlerLeak")
  48.         @Override
  49.         public void onCreate(Bundle savedInstanceState) {
  50.                 super.onCreate(savedInstanceState);

  51.                 InitialSDK();
  52.                 InitialLayout();

  53.                 mTimerTask = new TimerTask() {
  54.                         public void run() {
  55.                                 if (handler == null)
  56.                                         return;
  57.                                 Message mesasge = new Message();
  58.                                 handler.sendMessage(mesasge);
  59.                         }
  60.                 };
  61.                 mTimer.schedule(mTimerTask, 1000, 100);
  62.                 handler = new Handler() {
  63.                         @Override
  64.                         public void handleMessage(Message msg) {
  65.                                 CheckVideoStatus();
  66.                                 // 刷新音量条
  67.                                 if (LiveVideoActivity.this.bSuccessEnterRoom)
  68.                                         LiveVideoActivity.this.volumeProgressBar
  69.                                                         .setProgress(LiveVideoActivity.this.anychat
  70.                                                                         .GetUserSpeakVolume(userID));
  71.                                 // 判断是否需要隐藏退出按钮
  72.                                 Date now = new Date();
  73.                                 long interval = now.getTime()
  74.                                                 - LiveVideoActivity.this.mLastShowQuitBtnTime.getTime();
  75.                                 if (LiveVideoActivity.this.bShowQuitBtn && (interval > 2000)) {
  76.                                         LiveVideoActivity.this.bShowQuitBtn = false;
  77.                                         quitBtn.setVisibility(View.GONE);
  78.                                 }
  79.                                 super.handleMessage(msg);
  80.                         }
  81.                 };
  82.         }

  83.         // 判断视频打开状态,如果没有打开,则找一个适合的用户
  84.         private void CheckVideoStatus() {
  85.                 if (bVideoOpened || !bSuccessEnterRoom || bOnPaused)
  86.                         return;
  87.                
  88.                 // 打开本地的视频,进入房间成功已经进行了打开操作,这儿只需要设置显示
  89.                         if (anychat.GetCameraState(userID) == 2
  90.                                         && anychat.GetUserVideoWidth(userID) != 0) {
  91.                                 SurfaceHolder holder = videoView.getHolder();
  92.                                 holder.setFormat(PixelFormat.RGB_565);
  93.                                 holder.setFixedSize(anychat.GetUserVideoWidth(userID),
  94.                                                 anychat.GetUserVideoHeight(userID));
  95.                                 Surface s = holder.getSurface();
  96.                                 anychat.SetVideoPos(userID, s, 0, 0, 0, 0);
  97.                                 bVideoOpened = true;
  98.                         }
  99.         }

  100.         private void InitialSDK() {
  101.                 anychat = new AnyChatCoreSDK();
  102.                 anychat.SetBaseEvent(this);
  103.                 //初始化sdk参数,移植于Hall
  104.                 applyVideoConfig();
  105.                 if (configEntity.useARMv6Lib != 0)
  106.                         AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_CORESDK_USEARMV6LIB, 1);
  107.                 anychat.InitSDK(android.os.Build.VERSION.SDK_INT, 0);
  108.                
  109.                 this.anychat.Connect("192.168.0.2", 8906);
  110.                
  111.                 // 启动AnyChat传感器监听
  112.                 anychat.mSensorHelper.InitSensor(this);
  113.         }

  114.         private void InitialLayout() {
  115.                 this.setContentView(R.layout.live_video_room);
  116.                 this.setTitle("本地视频上传");
  117.                 videoView = (SurfaceView) findViewById(R.id.surface_video);
  118.                 SurfaceHolder holder = videoView.getHolder();
  119.                 holder.setKeepScreenOn(true);
  120.                 videoView.setOnClickListener(listener);
  121.                 if (configEntity.videoOverlay == 1)
  122.                         holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);

  123.                 // 如果是采用Java视频采集,则需要设置Surface的CallBack
  124.                 if (AnyChatCoreSDK
  125.                                 .GetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_CAPDRIVER) == AnyChatDefine.VIDEOCAP_DRIVER_JAVA)
  126.                         Log.e(TAG, "addCallback");
  127.                
  128.                         videoView.getHolder().addCallback(AnyChatCoreSDK.mCameraHelper);
  129.                                

  130.                 mCameraSwitchImage = (ImageView) findViewById(R.id.image_switch_camera);
  131.                 mCameraSwitchImage.setOnClickListener(listener);
  132.                 quitBtn = (Button) findViewById(R.id.btn_back);
  133.                 quitBtn.setOnClickListener(listener);
  134.                 volumeProgressBar = (ProgressBar) findViewById(R.id.progress_volume);

  135.                 // 判断是否显示本地摄像头切换图标
  136.                 if (AnyChatCoreSDK
  137.                                 .GetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_CAPDRIVER) == AnyChatDefine.VIDEOCAP_DRIVER_JAVA) {
  138.                         if (AnyChatCoreSDK.mCameraHelper.GetCameraNumber() > 1)
  139.                                 mCameraSwitchImage.setVisibility(View.VISIBLE);
  140.                 } else {
  141.                         String[] strVideoCaptures = anychat.EnumVideoCapture();
  142.                         if (strVideoCaptures != null && strVideoCaptures.length > 1)
  143.                                 mCameraSwitchImage.setVisibility(View.VISIBLE);
  144.                 }
  145.         }

  146.         OnClickListener listener = new OnClickListener() {
  147.                 public void onClick(View v) {
  148.                         if (v == quitBtn) {
  149.                                 mTimer.cancel();
  150.                                 if (bVideoOpened) {
  151.                                         anychat.UserCameraControl(userID, 0);
  152.                                         anychat.UserSpeakControl(userID, 0);
  153.                                         bVideoOpened = false;
  154.                                 }
  155.                                 finish();
  156.                         } else if (v == videoView) {
  157.                                 bShowQuitBtn = true;
  158.                                 mLastShowQuitBtnTime = new Date();
  159.                                 quitBtn.setVisibility(View.VISIBLE);
  160.                         } else if (v == mCameraSwitchImage) // 前后摄像头切换事件
  161.                         {
  162.                                 // 如果是采用Java视频采集,则在Java层进行摄像头切换
  163.                                 if (AnyChatCoreSDK
  164.                                                 .GetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_CAPDRIVER) == AnyChatDefine.VIDEOCAP_DRIVER_JAVA) {
  165.                                         AnyChatCoreSDK.mCameraHelper.SwitchCamera();
  166.                                         return;
  167.                                 }

  168.                                 String strVideoCaptures[] = anychat.EnumVideoCapture();
  169.                                 if (strVideoCaptures == null)
  170.                                         return;
  171.                                 String temp = anychat.GetCurVideoCapture();
  172.                                 for (int i = 0; i < strVideoCaptures.length; i++) {
  173.                                         if (!temp.equals(strVideoCaptures[i])) {
  174.                                                 anychat.UserCameraControl(-1, 0);
  175.                                                 bVideoOpened = false;
  176.                                                 anychat.SelectVideoCapture(strVideoCaptures[i]);
  177.                                                 anychat.UserCameraControl(-1, 1);
  178.                                                 break;
  179.                                         }
  180.                                 }
  181.                         }
  182.                 }
  183.         };

  184.         protected void onRestart() {
  185.                 super.onRestart();
  186.                 anychat.UserCameraControl(userID, 1);
  187.                 anychat.UserSpeakControl(userID, 1);
  188.                 bOnPaused = false;
  189.         }

  190.         protected void onResume() {
  191.                 super.onResume();
  192.         }

  193.         protected void onPause() {
  194.                 super.onPause();
  195.                 bOnPaused = true;
  196.                 if (bVideoOpened) {
  197.                         anychat.UserCameraControl(userID, 0);
  198.                         anychat.UserSpeakControl(userID, 0);
  199.                         bVideoOpened = false;

  200.                 }
  201.         }

  202.         protected void onDestroy() {
  203.                 mTimer.cancel();
  204.                 anychat.LeaveRoom(-1);
  205.                 anychat.mSensorHelper.DestroySensor();
  206.                 super.onDestroy();
  207.                 finish();
  208.         }

  209.         @Override
  210.         public void OnAnyChatConnectMessage(boolean bSuccess) {
  211.                 Log.d(TAG, "Connect " + bSuccess);
  212.                 //成功后登录
  213.                 if (bSuccess) {
  214.                         this.anychat.Login("android", "");
  215.                 }
  216.         }

  217.         @Override
  218.         public void OnAnyChatEnterRoomMessage(int dwRoomId, int dwErrorCode) {
  219.                 Log.e(TAG, "EnterRoom in "+ dwRoomId +"dwErrorCode"+ dwErrorCode);
  220.                 if (dwErrorCode == 0) {
  221.                         bSuccessEnterRoom = true;
  222.                         anychat.UserCameraControl(userID, 1);
  223.                         anychat.UserSpeakControl(userID, 1);
  224.                 }
  225.         }

  226.         @Override
  227.         public void OnAnyChatLinkCloseMessage(int dwErrorCode) {
  228.                 // 网络连接断开之后,上层需要主动关闭已经打开的音视频设备
  229.                 if (bVideoOpened) {
  230.                        
  231.                         anychat.UserCameraControl(userID, 0);
  232.                         anychat.UserSpeakControl(userID, 0);
  233.                        
  234.                         bVideoOpened = false;
  235.                 }
  236.         }

  237.         @Override
  238.         public void OnAnyChatLoginMessage(int dwUserId, int dwErrorCode) {
  239.                 Log.e(TAG, "Login with "+ dwUserId +"dwErrorCode"+ dwErrorCode);
  240.                 //默认房间4
  241.                 anychat.EnterRoom(4, "");
  242.         }

  243.         @Override
  244.         public void OnAnyChatOnlineUserMessage(int dwUserNum, int dwRoomId) {

  245.         }

  246.         @Override
  247.         public void OnAnyChatUserAtRoomMessage(int dwUserId, boolean bEnter) {

  248.         }
  249.        
  250.         /**
  251.          * 初始化参数
  252.          */
  253.         private void applyVideoConfig() {
  254.                 configEntity = LoadConfig(this);
  255.                 if(configEntity.configMode == 1)                // 自定义视频参数配置
  256.                 {
  257.                         // 设置本地视频编码的码率(如果码率为0,则表示使用质量优先模式)
  258.                         AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_BITRATECTRL, configEntity.videoBitrate);
  259.                         if(configEntity.videoBitrate==0)
  260.                         {
  261.                                 // 设置本地视频编码的质量
  262.                                 AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_QUALITYCTRL, configEntity.videoQuality);
  263.                         }
  264.                         // 设置本地视频编码的帧率
  265.                         AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_FPSCTRL, configEntity.videoFps);
  266.                         // 设置本地视频编码的关键帧间隔
  267.                         AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_GOPCTRL, configEntity.videoFps*4);
  268.                         // 设置本地视频采集分辨率
  269.                         AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_WIDTHCTRL, configEntity.resolution_width);
  270.                         AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_HEIGHTCTRL, configEntity.resolution_height);
  271.                         // 设置视频编码预设参数(值越大,编码质量越高,占用CPU资源也会越高)
  272.                         AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_PRESETCTRL, configEntity.videoPreset);
  273.                 }
  274.                 // 让视频参数生效
  275.                 AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_APPLYPARAM, configEntity.configMode);
  276.                 // P2P设置
  277.                 AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_NETWORK_P2PPOLITIC, configEntity.enableP2P);
  278.                 // 本地视频Overlay模式设置
  279.                 AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_OVERLAY, configEntity.videoOverlay);
  280.                 // 回音消除设置
  281.                 AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_AUDIO_ECHOCTRL, configEntity.enableAEC);
  282.                 // 平台硬件编码设置
  283.                 AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_CORESDK_USEHWCODEC, configEntity.useHWCodec);
  284.                 // 视频旋转模式设置
  285.                 AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_ROTATECTRL, configEntity.videorotatemode);
  286.                 // 视频采集驱动设置
  287.                 AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_CAPDRIVER, configEntity.videoCapDriver);
  288.                 // 本地视频采集偏色修正设置
  289.                 AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_FIXCOLORDEVIA, configEntity.fixcolordeviation);
  290.                 // 视频显示驱动设置
  291.                 AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_VIDEOSHOW_DRIVERCTRL, configEntity.videoShowDriver);
  292.                 // 音频播放驱动设置
  293.                 AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_AUDIO_PLAYDRVCTRL, configEntity.audioPlayDriver);
  294.                 // 音频采集驱动设置
  295.                 AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_AUDIO_RECORDDRVCTRL, configEntity.audioRecordDriver);
  296.                 // 视频GPU渲染设置
  297.                 AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_VIDEOSHOW_GPUDIRECTRENDER, configEntity.videoShowGPURender);
  298.                 // 本地视频自动旋转设置
  299.                 AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_AUTOROTATION, configEntity.videoAutoRotation);
  300.         }
  301.        
  302.        
  303.         /**调用设置
  304.          * @param context
  305.          * @return
  306.          */
  307.         private ConfigEntity LoadConfig(Context context) {
  308.                 ConfigEntity configEntity = new ConfigEntity();
  309.             SharedPreferences share = context.getSharedPreferences("perference", Context.MODE_WORLD_WRITEABLE);  

  310.         configEntity.ip = share.getString("ip", "192.168.0.2");
  311.         configEntity.port = share.getInt("port", 8906);
  312.            
  313.         configEntity.configMode = share.getInt("configMode", ConfigEntity.VIDEO_MODE_CUSTOMCONFIG);
  314.         configEntity.resolution_width = share.getInt("resolution_width", 320);
  315.         configEntity.resolution_height = share.getInt("resolution_height", 240);
  316.         configEntity.videoBitrate = share.getInt("videoBitrate", 150*1000);
  317.         configEntity.videoFps = share.getInt("videoFps", 10);
  318.         configEntity.videoQuality = share.getInt("videoQuality", ConfigEntity.VIDEO_QUALITY_GOOD);
  319.         configEntity.videoPreset = share.getInt("videoPreset", 3);
  320.         configEntity.videoOverlay = share.getInt("videoOverlay", 1);
  321.         configEntity.videorotatemode = share.getInt("VideoRotateMode", 0);
  322.         configEntity.videoCapDriver = share.getInt("VideoCapDriver", AnyChatDefine.VIDEOCAP_DRIVER_JAVA);
  323.         configEntity.fixcolordeviation = share.getInt("FixColorDeviation", 0);
  324.         configEntity.videoShowGPURender = share.getInt("videoShowGPURender", 0);
  325.         configEntity.videoAutoRotation = share.getInt("videoAutoRotation", 1);

  326.         configEntity.enableP2P = share.getInt("enableP2P", 1);
  327.         configEntity.useARMv6Lib = share.getInt("useARMv6Lib", 0);
  328.         configEntity.enableAEC = share.getInt("enableAEC", 1);
  329.         configEntity.useHWCodec = share.getInt("useHWCodec", 0);
  330.         configEntity.videoShowDriver = share.getInt("videoShowDriver", AnyChatDefine.VIDEOSHOW_DRIVER_JAVA);
  331.         configEntity.audioPlayDriver = share.getInt("audioPlayDriver", AnyChatDefine.AUDIOPLAY_DRIVER_JAVA);   
  332.         configEntity.audioRecordDriver = share.getInt("audioRecordDriver", AnyChatDefine.AUDIOREC_DRIVER_JAVA);
  333.                 return configEntity;
  334.         }

  335. }
复制代码
接收端显示如下
回复 支持 反对

使用道具 举报

5

主题

1269

帖子

3677

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3677
6#
发表于 2014-5-22 09:43:20 | 只看该作者
kristek 发表于 2014-5-22 09:41
那个 我貌似在初始化的时候调用了 我整理一下代码,一会儿上传上来,麻烦您帮忙看一下

嗯,好的,我在日志中看到你没有调用。是不是在初始化之前调用的啊?要在初始化之后调用才生效
回复 支持 反对

使用道具 举报

3

主题

14

帖子

61

积分

注册会员

Rank: 2

积分
61
5#
 楼主| 发表于 2014-5-22 09:41:01 | 只看该作者
廖斌 发表于 2014-5-22 09:33
您好,进入视频通话之前调用标准demo中hallactivity中的ApplyVideoConfig函数试下

那个 我貌似在初始化的时候调用了 我整理一下代码,一会儿上传上来,麻烦您帮忙看一下
回复 支持 反对

使用道具 举报

5

主题

1269

帖子

3677

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3677
地板
发表于 2014-5-22 09:33:22 | 只看该作者
kristek 发表于 2014-5-22 09:31
您好 日志如下:

[2014-05-21 19:09:53(496)]        ---------------------------AnyChat Platform Core SDK Cl ...

您好,进入视频通话之前调用标准demo中hallactivity中的ApplyVideoConfig函数试下
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|AnyChat ( 粤ICP备13022410号-1 )  

GMT+8, 2024-11-28 04:08 , Processed in 0.185266 second(s), 25 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表