太折腾了,官网下载的开发文档只是简单的实现摄像头的接入等功能,并没有SDK函数的讲解,也没有如何处理处理视频流等等操作的指导思路。网上找到的一丁点有用的文章,但是这些文章都不是安卓的,要不是C++的,要不就是C#的等等windows桌面开发的思路!给海康技术邮箱发送的技术请教,N天过去了,都不见回复,虽然买的是人家的产品,哎!这个售后技术支持还得提升下速度才行啊!
靠别人不如靠自己,经过我不断的研究SDK源码和不断的探索和试错开发思路,终于解决了SDK的视频流接入和识别!以下是我的解决方案和开发思路。(思路受启发于网上的资料!谢谢各位大神的无私分享!顾而我也把我的思路放到网上,需要的小伙伴们可以拿去,希望能帮助到你们!)
一、思路流程图:
二、接入SDK工作
1、接入SDK实时预览接口
m_iPlayID = HCNetSDK.getInstance().NET_DVR_RealPlay_V40(m_iLogID,
previewInfo, fRealDataCallBack);
if (m_iPlayID < 0) {
Log.e(TAG, "NET_DVR_RealPlay is failed!Err:"
+ HCNetSDK.getInstance().NET_DVR_GetLastError());
return;
}
2、回调获取视频流
private RealPlayCallBack getRealPlayerCbf() {
RealPlayCallBack cbf = new RealPlayCallBack() {
public void fRealDataCallBack(int iRealHandle, int iDataType,
byte[] pDataBuffer, int iDataSize) {
processRealData(iRealHandle, iDataType, pDataBuffer,
iDataSize, Player.STREAM_REALTIME);
}
};
return cbf;
}
3、在回调方法里继续调用SDK的视频流解码接口
(这个接口和网上大神用到的不一样&