当前位置: 首页 > news >正文

公司网站开发合同 华律网seo 网站title

公司网站开发合同 华律网,seo 网站title,网页作业怎么做一个网站,dom手表官方网站好多开发者苦于很难在unity3d下实现RTMP直播推送#xff0c;本次以大牛直播SDK#xff08;Github#xff09;的Windows平台RTMP推送模块#xff08;以推摄像头为例#xff0c;如需推屏幕数据#xff0c;设置相关参数即可#xff09;为例#xff0c;介绍下unity3d的RTMP…好多开发者苦于很难在unity3d下实现RTMP直播推送本次以大牛直播SDKGithub的Windows平台RTMP推送模块以推摄像头为例如需推屏幕数据设置相关参数即可为例介绍下unity3d的RTMP推送集成。 简单来说Unity3D环境下可以直接调用C#的接口封装针对此我们先做了一层封装 nt_publisher_wrapper.cs核心代码如下 初始化和基础参数设置 private bool InitSDK(){if (!is_pusher_sdk_init_){// 设置日志路径(请确保目录存在)String log_path D:\\pulisherlog;NTSmartLog.NT_SL_SetPath(log_path);UInt32 isInited NTSmartPublisherSDK.NT_PB_Init(0, IntPtr.Zero);if (isInited ! 0){Debug.Log(调用NT_PB_Init失败..);return false;}is_pusher_sdk_init_ true;}return true;} public bool OpenPublisherHandle(uint video_option, uint audio_option){if (publisher_handle_ ! IntPtr.Zero){return true;}publisher_handle_count_ 0;if (NTBaseCodeDefine.NT_ERC_OK ! NTSmartPublisherSDK.NT_PB_Open(out publisher_handle_,video_option, audio_option, 0, IntPtr.Zero)){return false;}if (publisher_handle_ ! IntPtr.Zero){pb_event_call_back_ new NT_PB_SDKEventCallBack(PbEventCallBack);NTSmartPublisherSDK.NT_PB_SetEventCallBack(publisher_handle_, IntPtr.Zero, pb_event_call_back_);return true;}else{return false;}} private void SetCommonOptionToPublisherSDK(){if (!IsPublisherHandleAvailable()){Debug.Log(SetCommonOptionToPublisherSDK, publisher handle with null..);return;}CameraInfo camera cameras_[cur_sel_camera_index_];NT_PB_VideoCaptureCapability cap camera.capabilities_[cur_sel_camera_resolutions_index_];SetVideoCaptureDeviceBaseParameter(camera.id_.ToString(), (UInt32)cap.width_, (UInt32)cap.height_);SetFrameRate((UInt32)CalBitRate(edit_key_frame_, cap.width_, cap.height_));SetVideoEncoderType(is_h264_encoder ? 1 : 2);SetVideoQualityV2(CalVideoQuality(cap.width_, cap.height_, is_h264_encoder));SetVideoMaxBitRate((CalMaxKBitRate(edit_key_frame_, cap.width_, cap.height_, false)));SetVideoKeyFrameInterval((edit_key_frame_));if (is_h264_encoder){SetVideoEncoderProfile(1);}SetVideoEncoderSpeed(CalVideoEncoderSpeed(cap.width_, cap.height_, is_h264_encoder));// 音频相关设置SetAuidoInputDeviceId(0);SetPublisherAudioCodecType(1);SetPublisherMute(is_mute);SetInputAudioVolume(Convert.ToSingle(edit_audio_input_volume_));} 预览、停止预览 public bool StartPreview(){if(CheckPublisherHandleAvailable() false)return false;video_preview_image_callback_ new NT_PB_SDKVideoPreviewImageCallBack(SDKVideoPreviewImageCallBack);NTSmartPublisherSDK.NT_PB_SetVideoPreviewImageCallBack(publisher_handle_, (int)NTSmartPublisherDefine.NT_PB_E_IMAGE_FORMAT.NT_PB_E_IMAGE_FORMAT_RGB32, IntPtr.Zero, video_preview_image_callback_);if (NTBaseCodeDefine.NT_ERC_OK ! NTSmartPublisherSDK.NT_PB_StartPreview(publisher_handle_, 0, IntPtr.Zero)){if (0 publisher_handle_count_){NTSmartPublisherSDK.NT_PB_Close(publisher_handle_);publisher_handle_ IntPtr.Zero;}return false;}publisher_handle_count_;is_previewing_ true;return true;}public void StopPreview(){if (is_previewing_ false) return;is_previewing_ false;publisher_handle_count_--;NTSmartPublisherSDK.NT_PB_StopPreview(publisher_handle_);if (0 publisher_handle_count_){NTSmartPublisherSDK.NT_PB_Close(publisher_handle_);publisher_handle_ IntPtr.Zero;}} 开始推送、停止推送 public bool StartPublisher(String url){if (CheckPublisherHandleAvailable() false) return false;if (publisher_handle_ IntPtr.Zero){return false;}if (!String.IsNullOrEmpty(url)){NTSmartPublisherSDK.NT_PB_SetURL(publisher_handle_, url, IntPtr.Zero);}if (NTBaseCodeDefine.NT_ERC_OK ! NTSmartPublisherSDK.NT_PB_StartPublisher(publisher_handle_, IntPtr.Zero)){if (0 publisher_handle_count_){NTSmartPublisherSDK.NT_PB_Close(publisher_handle_);publisher_handle_ IntPtr.Zero;}is_publishing_ false;return false;}publisher_handle_count_;is_publishing_ true;return true;}public void StopPublisher(){if (is_publishing_ false) return;publisher_handle_count_--;NTSmartPublisherSDK.NT_PB_StopPublisher(publisher_handle_);if (0 publisher_handle_count_){NTSmartPublisherSDK.NT_PB_Close(publisher_handle_);publisher_handle_ IntPtr.Zero;}is_publishing_ false;} 相关event事件回调 private void PbEventCallBack(IntPtr handle, IntPtr user_data, UInt32 event_id,Int64 param1,Int64 param2,UInt64 param3,UInt64 param4,[MarshalAs(UnmanagedType.LPStr)] String param5,[MarshalAs(UnmanagedType.LPStr)] String param6,IntPtr param7){String event_log ;switch (event_id){case (uint)NTSmartPublisherDefine.NT_PB_E_EVENT_ID.NT_PB_E_EVENT_ID_CONNECTING:event_log 连接中;if (!String.IsNullOrEmpty(param5)){event_log event_log url: param5;}break;case (uint)NTSmartPublisherDefine.NT_PB_E_EVENT_ID.NT_PB_E_EVENT_ID_CONNECTION_FAILED:event_log 连接失败;if (!String.IsNullOrEmpty(param5)){event_log event_log url: param5;}break;case (uint)NTSmartPublisherDefine.NT_PB_E_EVENT_ID.NT_PB_E_EVENT_ID_CONNECTED:event_log 已连接;if (!String.IsNullOrEmpty(param5)){event_log event_log url: param5;}break;case (uint)NTSmartPublisherDefine.NT_PB_E_EVENT_ID.NT_PB_E_EVENT_ID_DISCONNECTED:event_log 断开连接;if (!String.IsNullOrEmpty(param5)){event_log event_log url: param5;}break;default:break;}if(OnLogEventMsg ! null) OnLogEventMsg.Invoke(event_id, event_log);} SmartPublishWinMono.cs 调用上述封装的代码即可本地预览的话拿到回调的RGB数据在unity3d上层刷下即可如下图 经测试unity3d下RTMP推送配合RTMP播放端依然可以实现毫秒级延迟的推拉流体验。
http://www.zqtcl.cn/news/95658/

相关文章:

  • 网站建设置顶多少钱翻译成英文
  • 柳州正规网站制作公司哪家好怎么学好网站建设
  • 德宏做网站网站的设计思路范文
  • 自己的电脑做网站服务器深圳福田有什么好玩的地方
  • 奕腾网站建设上海十大装修公司排名榜单
  • 简述建设一个网站的基本步骤wordpress欢迎新会员
  • 国外医疗网站模板wordpress主题 科技
  • 海淀企业型网站建设wordpress自定义帖子链接
  • 自己的网站怎么优化做网页的
  • dw设计一个简单网站网页微信版文件传输
  • 网站地图怎么做XML宁波网站建设服务提供商
  • 中石化两学一做网站获取网站域名
  • 吉林长春火车站官网湖北葛洲坝建设工程网站
  • 重庆网站推广服务广告公司女员工深夜兼职
  • 网站的要素是什么wordpress框架解密_day3
  • 抽奖怎么做网站彩页设计公司
  • 推广网站文案素材lamp环境wordpress
  • 合肥网站建设公司 推荐百度下载安装2021
  • 沈阳网站备案照相离婚证app制作软件
  • 唯品会一家做特卖的网站 分析那些网站可以做反链
  • 百度网站排名查询工具网站标签怎么做
  • 如何用ps做网站导航一个网站开发时间
  • 合肥城乡建设网站06628 网页制作与网站建设
  • 网站设计岗位的职责与要求北京网站建设 合一
  • 网站制作app开发公司网站建设 英文
  • 毕业设计网页制作网站建设网站预约挂号怎么做
  • 河东天津网站建设永州做网站的公司
  • 网页制作与网站建设填空题免费的企业邮箱怎么申请
  • 智慧农业网站建设沈阳建设信息网
  • 永久免费素材网站个人网站域名所有权