- 博客(15)
- 资源 (2)
- 收藏
- 关注
原创 Android运行时报错No implemention found
JNI编程1. JNI编程需要链接C/C++动态链接库2. JNI运行时需要链接C/C++动态链接库3. JNI的方法名称需要和Java的native方法严格对应编译时链接编译时,通过CMake脚本指定JNI代码需要链接的库CMake常见的链接库的方法是 先导入,再链接. 和常用的CMake脚本可能不太一样以链接ffmpeg的avcodec库libavcodec.so为例:
2018-01-31 20:10:07 456
原创 音视频PTS和DTS
PTS和DTSDTS: decode time stamp 解码时间戳PTS: play time stamp 播放时间戳一般来说 音频的DTS和PTS是相同的 随着线性时钟有序增长由于现行的视频编码普遍采用双向参考,所以在存在B帧(双向参考帧)时,视频的DTS和PTS将会出现差异.H.264/AVC的DTS和PTS视频应用最多的是H.264存在B帧时视频数据
2018-01-30 12:46:29 1030
原创 C/C++ const修饰符
constconst在C/C++中的作用基本一致1. 声明变量2. 声明指针通过const修饰后,不符合const用法的操作将导致编译器的编译错误也就是说,const是编译时检查.声明变量const int a = 10;a被声明为常量,值只能为10.试图修改将导致编译的error此时const的位置排布不影响语义.声明指针这里有两个用法int
2018-01-28 23:49:14 272
原创 webRTC PeerConnection连接过程
PeerConnectionPeerConnection是webRTC的顶层接口,代表一个通话对象.要建立点对点的音视频通话需要的双方各建立一个PeerConnection并交互信令完成对接.signal信令webRTC的信令指的是 SDP和Candidate 1. SDP是session description,描述local的多媒体情况 2. Candidat
2018-01-28 22:56:10 2705
原创 git config
Git配置Git的config信息分为global system local三个级别通常使用git配置的是global全局设置这一级别常用的git配置命令1. 查看git配置 git config --global --list git会罗列出当前所有的global配置2. 设置global属性 git config --global xxx xxx
2018-01-25 20:58:06 1794
原创 node.js + Web服务
node.js 和 javascriptnode.js和javascript很相近, nodejs的起源是在服务器上应用Google的v8引擎(一个开源的javascript引擎).所以它们有很多相似之处,包括但不限于1. 语法上的高度近似2. 都是解释型语言最大的不同之处在于,运行的机制1. javascript虽然被部署在网页服务器上,但执行时是被浏览器通过http协议下载到本地
2018-01-25 20:50:06 579
原创 WebRTC相关概念
WebRTC翻译一些官网的内容充实理论储备用了自己的语言做润色修饰,有能力还是直接阅读官网.1. 什么是WebRTC? WebRTC是一个开放的用于支持浏览器实时会话的框架.包括用于支持高质量会话的基本组件,比如音频和视频组件. 当这些组件在浏览器中实现的时候,可以通过JavaScript API来调用,支持开发者方便的实现他们的web RTC会话应用.2. 为什
2018-01-22 20:07:12 218
原创 cJSON_Delete调用时segmentfault
cJSON_DeletecJSON_Delete释放cJSON构造object时申请的内存资源通常用法 cJSON *json = cJSON_CreateObject(); ... ... cJSON_Delete(json);调用cJSON_Delete时产生segmentfault错误段代码: cJSON *json = cJSON_
2018-01-20 21:29:00 7110 1
原创 Android JNI : Java封装C++
Java封装C++将C++类 和 Java类对等起来实例化一个Java对象就相当于实例化了一个C++对象实现原理指针实质上也是个int或long(视平台而定)类型的变量在jni方法中实例化c++对象后 返回给java方法 并转化为long变量java方法根据这个得到的long型'句柄' 可以做一系列的对某个C++对象的操作包括申请 释放等等C++:class te
2018-01-12 18:05:15 1176
原创 Android Studio引用另一个模块module的方法
适用情形最近碰上这样一种情况: app需要引用jni功能 然后jni相关的功能被封装成一个android library 模块module然后在app模块module中需要引用jni module的一个java类直接在app模块中引用这个类 提示无法解析这个类android中引用别的module 需要加入对它的依赖有两种添加方式 1. 直接修改build.gradle脚本引入
2018-01-12 11:53:38 30269 4
原创 QT 窗口之间跳转切换
QT的窗口QT的窗口有QMainWindow QDialog QWidget等支持创建QT窗口时一般视情况选择继承这几个窗口基类中的一个例如QTCreator默认生成的工程的窗口class clientwindow : public QMainWindow {...} 窗口的可视性要达到QT窗口之间跳转的效果 可以利用窗口的可视性实现QT窗口类都带有这么两个方法 show 和 hide
2018-01-10 20:29:52 6350 1
原创 工程进度缓慢,难以完成的应对
遇到困难的应对遇到问题迟迟解决不了怎么办?1. 分解问题 先把整个问题分解成数个小功能来实现2. 按计划实现分解的小功能 没有什么问题是完全解决不了的 就算是很难缠的bug 以某一个点进入调试 总能找到一些线索3. 多请教老员工 解的问题 说不定就是人家碰过的 一点经验让你少走很多弯路未完待续...
2018-01-10 13:53:20 2387
原创 c-style string std::string QString的转换
c-style string 和c++ std::string的转换c风格的字符串转换为c++ std::string 构造一个std::string对象 char *str = "sliver"; std::string(str);c++ std::string转换为c风格的字符串 c++ string提供了c_str方法 std::string str = "
2018-01-08 17:26:41 356
原创 Android NDK 链接posix线程库
posix pthread通常链接pthread在CMake脚本中都是这样做的 target_link_libraries(xxx pthread)然而在Android NDK编译中这样会报错提示找不到pthread这是因为Android NDK中posix线程库被归纳到了c++库中所以正确的链接方法是链接C++库target_link_libraries(xxx stdc++)
2018-01-04 11:03:57 2391 1
原创 android adb
adb 常用命令1. adb devices 列出adb设备的信息和设备号2. adb root 获得adb的root权限3. adb remount 重新挂载文件系统以获得写权限4. adb push 推送文件到android文件系统5. adb pull 从android文件系统下载文件到本地6. adb disable-verity 关闭android的验证(android6.0起存
2018-01-03 14:48:46 176
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人