设为首页收藏本站

AnyChat技术支持论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
12
返回列表 发新帖
楼主: bdcn
打印 上一主题 下一主题

anychat.GetUserVideoWidth(id)的值问题

[复制链接]

7

主题

43

帖子

121

积分

注册会员

Rank: 2

积分
121
11#
 楼主| 发表于 2014-2-20 17:31:06 | 显示全部楼层
标准的示例程序没问题
回复 支持 反对

使用道具 举报

7

主题

43

帖子

121

积分

注册会员

Rank: 2

积分
121
12#
 楼主| 发表于 2014-2-20 21:44:22 | 显示全部楼层
比对过了,逻辑没问题,ApplyVideoConfig()也调用了
回复 支持 反对

使用道具 举报

7

主题

43

帖子

121

积分

注册会员

Rank: 2

积分
121
13#
 楼主| 发表于 2014-2-21 10:23:51 | 显示全部楼层
//  根据配置文件配置视频参数
        private void ApplyVideoConfig() {
                ConfigEntity configEntity = ConfigService.LoadConfig(this);
                if(configEntity.configMode == 1)                // 自定义视频参数配置
                {
                        // 设置本地视频编码的码率(如果码率为0,则表示使用质量优先模式)
                        AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_BITRATECTRL, configEntity.videoBitrate);
                        if(configEntity.videoBitrate==0)
                        {
                                // 设置本地视频编码的质量
                                AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_QUALITYCTRL, configEntity.videoQuality);
                        }
                        // 设置本地视频编码的帧率
                        AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_FPSCTRL, configEntity.videoFps);
                        // 设置本地视频编码的关键帧间隔
                        AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_GOPCTRL, configEntity.videoFps*4);
                        // 设置本地视频采集分辨率
                        AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_WIDTHCTRL, configEntity.resolution_width);
                        AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_HEIGHTCTRL, configEntity.resolution_height);
                        // 设置视频编码预设参数(值越大,编码质量越高,占用CPU资源也会越高)
                        AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_PRESETCTRL, configEntity.videoPreset);
                }
                // 让视频参数生效
                AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_APPLYPARAM, configEntity.configMode);
                // P2P设置
                AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_NETWORK_P2PPOLITIC, configEntity.enableP2P);
                // 本地视频Overlay模式设置
                AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_OVERLAY, configEntity.videoOverlay);
                // 回音消除设置
                AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_AUDIO_ECHOCTRL, configEntity.enableAEC);
                // 平台硬件编码设置
                AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_CORESDK_USEHWCODEC, configEntity.useHWCodec);
                // 视频旋转模式设置
                AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_ROTATECTRL, configEntity.videorotatemode);
                // 视频采集驱动设置
                AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_CAPDRIVER, configEntity.videoCapDriver);
                // 本地视频采集偏色修正设置
                AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_FIXCOLORDEVIA, configEntity.fixcolordeviation);
                // 视频显示驱动设置
                AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_VIDEOSHOW_DRIVERCTRL, configEntity.videoShowDriver);
                // 音频播放驱动设置
                AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_AUDIO_PLAYDRVCTRL, configEntity.audioPlayDriver);
                // 音频采集驱动设置
                AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_AUDIO_RECORDDRVCTRL, configEntity.audioRecordDriver);
                // 视频GPU渲染设置
                AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_VIDEOSHOW_GPUDIRECTRENDER, configEntity.videoShowGPURender);
                // 本地视频自动旋转设置
                AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_AUTOROTATION, configEntity.videoAutoRotation);
        }

        public static ConfigEntity LoadConfig(Context context)
        {
                ConfigEntity configEntity = new ConfigEntity();
            SharedPreferences  share = context.getSharedPreferences("perference", Context.MODE_WORLD_WRITEABLE);  

        configEntity.name = share.getString("name", "");
        configEntity.password = share.getString("password", "");
        configEntity.IsSaveNameAndPw = share.getString("IsSaveNameAndPw", "").equals("1") ? true : false;
      
//      configEntity.ip = share.getString("ip", "192.168.7.95");
        configEntity.ip = share.getString("ip", "192.168.8.209");
//      configEntity.ip = share.getString("ip", "192.168.7.115");
        configEntity.port = share.getInt("port", 8906);
        
        configEntity.configMode = share.getInt("configMode", ConfigEntity.VIDEO_MODE_SERVERCONFIG);
        configEntity.resolution_width = share.getInt("resolution_width", 320);
        configEntity.resolution_height = share.getInt("resolution_height", 240);
        configEntity.videoBitrate = share.getInt("videoBitrate", 200*1000);
        configEntity.videoFps = share.getInt("videoFps", 20);
        configEntity.videoQuality = share.getInt("videoQuality", ConfigEntity.VIDEO_QUALITY_BEST);
        configEntity.videoPreset = share.getInt("videoPreset", 3);
        configEntity.videoOverlay = share.getInt("videoOverlay", 1);
        configEntity.videorotatemode = share.getInt("VideoRotateMode", 0);
        configEntity.videoCapDriver = share.getInt("VideoCapDriver", AnyChatDefine.VIDEOCAP_DRIVER_JAVA);
        configEntity.fixcolordeviation = share.getInt("FixColorDeviation", 0);
        configEntity.videoShowGPURender = share.getInt("videoShowGPURender", 0);
        configEntity.videoAutoRotation = share.getInt("videoAutoRotation", 1);

        configEntity.enableP2P = share.getInt("enableP2P", 1);
        configEntity.useARMv6Lib = share.getInt("useARMv6Lib", 0);
        configEntity.enableAEC = share.getInt("enableAEC", 1);
        configEntity.useHWCodec = share.getInt("useHWCodec", 0);
        configEntity.videoShowDriver = share.getInt("videoShowDriver", AnyChatDefine.VIDEOSHOW_DRIVER_JAVA);
        configEntity.audioPlayDriver = share.getInt("audioPlayDriver", AnyChatDefine.AUDIOPLAY_DRIVER_JAVA);   
        configEntity.audioRecordDriver = share.getInt("audioRecordDriver", AnyChatDefine.AUDIOREC_DRIVER_JAVA);
                return configEntity;
        }

这是配置
回复 支持 反对

使用道具 举报

7

主题

43

帖子

121

积分

注册会员

Rank: 2

积分
121
14#
 楼主| 发表于 2014-2-21 12:26:59 | 显示全部楼层
// 如果是采用Java视频采集,则需要设置Surface的CallBack
if(AnyChatCoreSDK.GetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_CAPDRIVER) == AnyChatDefine.VIDEOCAP_DRIVER_JAVA) {
      selfSurfaceHolder.addCallback(AnyChatCoreSDK.mCameraHelper);
}

上面这段代码执行了,但是下面这段代码没执行

@Override
        public void surfaceCreated(SurfaceHolder holder) {
                try {
                        mCamera = Camera.open(iCurrentCameraId);
                        currentHolder = holder;
                        mCamera.setPreviewDisplay(holder);//set the surface to be used for live preview
                        initCamera();
                } catch (Exception ex) {
                        if(null != mCamera) {
                                mCamera.release();
                                mCamera = null;
                                mVideoPixfmt = -1;
                        }
                }
        }
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-3 23:59 , Processed in 0.108671 second(s), 20 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

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