视频高清直播RTMP视频推流组件EasyRTMP-IOS版如何使用wchar_t*类型参数?
时间:2022-07-23
本文章向大家介绍视频高清直播RTMP视频推流组件EasyRTMP-IOS版如何使用wchar_t*类型参数?,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
wchar_t是C/C++的字符类型,是一种扩展的存储方式。wchar_t类型主要用在国际化程序的实现中,但它不等同于unicode编码。unicode编码的字符一般以wchar_t类型存储。在我们的SDK开发中,偶尔会用wchar_t*类型的参数。
最近TSINGSEE青犀视频研发人员在EasyRTMP推流组件iOS版本中接入freetype2库,来实现水印的功能,其中显示中文的时候,直接使用char * 就会造成FT_Get_Char_Index方法找不到汉字的字形索引,需要wchar_t*类型的参数。
分析问题
wchar_t:宽字节字符。 在C++中,它是一个特有的基本类型(因此它并没有在或其他header中被定义)。在C中,这是一个整数类型的typedef。
解决问题
在TxtOverlay.h中方法的声明如下:
void txtOverlay(long ctx, unsigned char* buffer, wchar_t* txt, size_t len, int x, int y);
那么在iOS如何将NSString字符串转成wchar_t*呢?方法如下:
+(const wchar_t*)stingTowWchar_t:(NSString*)string {
return (wchar_t*)[string cStringUsingEncoding:NSUTF32StringEncoding];
}
如果需要将wchar_t*转成NSString字符串,方法如下:
+(NSString*)getStringFromWChar:(const wchar_t*) inStr {
setlocale(LC_CTYPE, "UTF-8");
NSInteger strLength = wcslen(inStr);
NSInteger bufferSize = (strLength+1)*4;
char *stTmp = (char*)malloc(bufferSize);
memset(stTmp, 0, bufferSize);
wcstombs(stTmp, inStr, strLength);
NSString* ret = [[NSString alloc] initWithBytes:stTmp length:strlen(stTmp)
encoding:NSUTF8StringEncoding];//ARC
free(stTmp);
return ret;
}
更多关于EasyRTMP
TSINGSEE青犀视频旗下的EasyRTMP视频流媒体推流组件,可以用于桌面直播或者手机直播等场景,摄像机或其它设备实时采集到的现场画面,通过编码器或编码软件推送到sewise直播服务器分发,用户即可通过PC、手机、平板电脑等多种终端实时观看现场直播内容。常用于年会、发布会、政企会议等网络直播场景中。
- HTML5录音控件
- Microsoft 线性回归分析算法
- Spring Boot配置文件放在jar外部
- CSS引入方式
- Scrapy爬虫轻松抓取网站数据(以bbs为例,提供源码)
- CSS3实现loading图
- Netty断线重连
- 使用Spring访问Mongodb的方法大全——Spring Data MongoDB查询指南
- gitbook安装与使用,并使用docker部署
- 【专业技术】在C/C++程序中打印当前函数调用栈
- 关于定位position的相关知识
- Docker+Jenkins持续集成环境(1)使用Docker搭建Jenkins+Docker持续集成环境
- 段落首字下沉
- 【编程基础】C语言指针、引用和取值
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- 树状数组-HDU3015 Disharmony Trees
- 放弃fastjson,拥抱Jackson
- Spring入门
- 贪心-HDU1789 Doing Homework again(活动安排问题)
- flink实战-实时计算平台通过api停止流任务
- JAVA初级岗面试知识点——基础篇
- flink实战-flink streaming sql 初体验
- flink实战教程-使用set实时计算当天网站uv
- 贪心-HDU3348 coins(钱币问题)
- 归并排序详解 -HDU4911 Inversion(逆序对)
- 数据结构与算法——稀疏数组
- Maven安装配置详细教程
- 数据结构与算法——冒泡排序
- MyBatis Generator逆向工程-你还在手写mapper吗?
- JSR303后端校验详解