自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(76)
  • 资源 (28)
  • 收藏
  • 关注

原创 音视频编解码流媒体处理总结

本篇把音视频及流媒体基础相关博客总结一下:RTSP/RTMP推流组件PushStream基于c++实现RTSP/RTMP推流组件PushStream简介 RTSP/RTMP推流组件PushStream推送H264到EasyDarwin示例 RTSP/RTMP推流组件PushStream推送AAC到EasyDarwin示例 RTSP/RTMP推流组件PushStream推送G711到E...

2018-11-27 16:54:10 790

原创 Android音视频开发4:生成指定CPU平台的SO库

生成指定CPU平台的SO库

2023-05-29 20:49:13 155 1

原创 Android音视频开发3:NDK环境搭建

Android音视频开发3:NDK环境搭建

2023-05-29 12:18:10 123

原创 Android音视频开发2:So库适配总结

So库适配总结

2023-05-29 12:01:48 612

原创 Android音视频开发1:Android Studio安装

Android音视频开发1:Android Studio安装

2023-05-28 20:43:28 506

原创 STL bind1st bind2nd bind 的使用

STL bind1st bind2nd bind 的使用bind1st什么时候用?bind1st()和bind2nd()把二元函数转化为一元函数,方法是绑定其中一个参数。 这两种方法在 C++11 里已经 deprecated 了,建议使用新标准的 bind()。bind1st原型?template <class Operation, class T> binder1st<Operation> bind1st (const Operation& op, c

2021-05-11 20:50:29 198

原创 Copy-and-swap详解安全自我赋值

Copy-and-swap详解安全自我赋值什么时候需要copy-swap?构造一个类去管理另外一个类时,需要遵循一个原则( The Rule of Three ),拷贝构造函数,赋值函数,析构函数,如果显示的实现其中一个,其他的都需要显示实现。如C++99中的auto_ptr用来管理普通指针类。原则是什么?copy-swap是解决方案,可以很好地协助赋值运算符实现两件事:避免代码重复,并提供强大的异常保证。工作原理?从概念上讲,它通过使用拷贝构造函数的功能来创建数据的本地副本,然后使

2021-05-11 20:03:25 382 3

原创 英伟达GPU开发一

英伟达GPU开发查看GPU是否支持CUDANvidia官网 https://developer.nvidia.com/cuda-gpus 查看自己的显卡是否支持CUDANvidia官网 www.nvidia.cn/drivers 驱动下载地址Nvidia官网 https://developer.nvidia.com/zh-cn/cuda-downloads CUDA下载地址...

2021-05-11 18:14:48 296

原创 centos下Intel核显应用ffmpeg的qsv插件编解码

1.centos中查看gpu设备笔者机器centos7.8版本,通过lspci |grep VGA命令查看系统GPU设备。2.下载linux版本Media Sdk官网下载地址https://github.com/Intel-Media-SDK/MediaSDK/releases,选择下载的是20.2.0版本3.安装MediaStack.tar.gz解压安装包MediaStack.tar.gz,运行install_media.sh安装,默认安装路径/opt/intel/me..

2021-04-28 14:30:54 1729 2

原创 windows下Intel核显应用ffmpeg的qsv插件编解码

1.怎么查看核显是否支持QSV技术?百度搜索CPU型号,进入设备技术参数页面,下面是笔者机器CPU参数页面,看到下图中红线框的内容说明,CPU支持QSV技术。2.ffmpeg官网发布的windows版本是支持qsv技术的,可以查看编译参数。解码器对qsv的支持编码器对qsv的支持3.安装windows版本MediaSdk包,Intel_Media_SDK_2017_R1.rar4.ffmpeg命令行采用qsv技术硬解码ffmpeg -i video_480x3

2021-04-28 12:00:09 1942 1

原创 ubuntu16.4_vscode_cmake开发

vscode中调试cmake工程1.创建launch.json调试配置文件2. 修改配置文件,修改运行的程序名和工作目录修改完即可以F5调试了,如果调试中进不去函数或者打断点无效,原因可能是CMakeList.txt写错了,常见错误是加了编译优化选项 -oN,或者是编译release版本,或者编译优化与debug版本相矛盾造成的3.创建preLaunchTask,在每次编译前自动cmake源代码完成以上配置,当修改源代码后,每次都要手动cmake,然后编译,能不能修改源代码后直.

2021-04-12 11:04:04 141 1

原创 CentOS7.4_Opencv/Contrib安装

1. 安装CMAKE1.1 去cmake官网下载最新版的软件,然后上传到centos1.2 解压tar zxvf cmake-3.17.0-rc2.tar.gz1.3 编译安装cd cmake-3.17.0-rc2./bootstrapmake && make install1.4 测试安装成功hash -rcmake --version2. 安装opencv2.1 从github中下载OpenCV + OpenCV_Contrib库(注意版本对应.

2021-04-06 15:32:57 436 1

原创 萤石云平台使用 - IPC接入

发送

2021-03-09 15:01:08 10971

原创 GStreamer初步入手 - Hello World

官网手册:https://gstreamer.freedesktop.org/documentation/index.html?gi-language=c开发环境:Ubuntu 16.04,默认已经安装GStreamer,可以执行命令,但是编译程序有问题,找不到开发头文件见gst.h,可以locate gst.h验证一下,没有则需要重新安装,本人开发机器就需要重新安装后,才能编译程序。1...

2019-12-31 14:57:05 1176

原创 南方电网公司 变电站及发电厂视频及环境监控系统 技术规范

2019-08-20 14:12:43 2630 3

原创 centos7.0+eclipse+qt5.12.2开发

1.下载 eclipse开发包eclipse-cpp-luna-SR2-linux-gtk-x86_64.tar.gz 解压直接使用eclipse2.下载QT安装包,qt-opensource-linux-x64-5.12.2.run,下载完直接运行,图形化安装。3.下载eclipse的QT插件qt-eclipse-integration-linux.x86_64-1.6.1.tar.gz...

2019-07-04 15:30:33 873

原创 centos7.0+eclipse+python环境搭建

环境搭建软件与环境:1.Centos7.0选择安装开发版本,可选安装包,选定python2.查看系统安装python版本信息3.下载 eclipse开发包eclipse-cpp-luna-SR2-linux-gtk-x86_64.tar.gz 解压直接使用eclipse4.下载python开发插件,PyDev 2.7.5 因为系统用的python版本是2.7.5,直接把...

2019-07-04 09:49:13 393

原创 HLS开发小知识点

HLS协议拉流流程:首先发送Get命令,获取M3U8文件内容,包括当前服务器所有的TS切片文件目录。发送Get命令获取TS文件内容,每次获取,HTTP响应请求TS文件的所有内容。请求TS文件播放完成,再次发送HTTP Get请求,获取下一个Ts文件,每次请求都是短连接,无状态。怎么从hls抓包中获取ts文件内容?1. 过滤出ts文件2.选中TS流文件,导出TS文件...

2019-05-29 11:15:36 1829

原创 FFMPEG多线程并发解码的效率测试

FFMPEG为了提高解码速度,可以使用多线程并发解码,分为线程级并发解码和片级并发编程。并发解码需要解决多帧依赖问题。如同时对I帧和P帧解码,P帧依赖于I帧,怎么办?FFMPEG采用算法如下:1.每个线程在解码完一行宏块后,更新解码高度H12.B/P帧解码宏块时,需要把待解码宏块H2与H1比较,H2>=H1,线程阻塞等待。3.每个线程更新解码高度是,阻塞线程会被唤醒比较高度。...

2019-05-17 14:14:46 10289 2

原创 FFMPEG常见命令备忘

FFMPEG查看帮助信息,查看帮助信息后,可以查看支持编码器,解码器,协议等。ffmpeg.exe -help查看支持的编码器(也就是-vcodec后面可以接的参数):ffmpeg -codecs查看支持的封装格式(也就是-f后面可以接的参数):ffmpeg -formats查看支持的滤镜(也就是-vf后面可以接的参数):ffmpeg -filters如何提高解码速度:...

2019-05-14 20:12:26 214

原创 基于Flash的开源网页播放器使用方法(FlowPlayer/AdobePlayer)

对WEB的视频解码,传统是通过WEB网页加载ActiveX控件来播放视频,这样用户在播放视频的时候需要安装控件,非专业用户可能觉得麻烦。直到FLASH播放器的出现,才解决这个问题。本篇记录一下几个FLASH播放器的使用方法,方便进行RTMP开发时候测试用。因为RTMP协议最初开发针对的就是FLASH平台直接的流媒体通讯,RTMP最大特点“无插件”直播,这也得益于在客户端大量安装的FLASH播放器。...

2018-12-06 13:38:51 2586

原创 RTMP/RTSP推流组件推送摄像机IPC(H264)到EasyDarwin

技术在于交流、沟通,转载请注明出处并保持作品的完整性。原文:https://blog.csdn.net/hiwubihe/article/details/84670875基于c++实现RTSP/RTMP推流组件PushStream简介 RTSP/RTMP推流组件PushStream推送H264到EasyDarwin示例 RTSP/RTMP推流组件PushStream推送AAC到Easy...

2018-12-04 18:55:20 3044 3

原创 RTSP/RTMP推流组件PushStream推送H265流到EasyDarwin示例

技术在于交流、沟通,转载请注明出处并保持作品的完整性。原文:https://blog.csdn.net/hiwubihe/article/details/84670875[本系列相关文章] 基于c++实现RTSP/RTMP推流组件PushStream简介 RTSP/RTMP推流组件PushStream推送H264到EasyDarwin示例 RTSP/RTMP推流组件PushStre...

2018-12-03 16:48:17 2237 2

原创 H265打包成RTP

本篇介绍一下H265怎么打包RTP,在H265中,每一个前缀码00000001后面跟随的前两个字节为NALU的语法元素,总体结构如下                      这两个字节字段分布如下,F(forbidden_zero_bit)通常为0,LayId(nuh_layer_id)通常为0,Tid(nuh_temporal_id_plus1)通常为1,所以对一段码流来说第二字节通常...

2018-12-02 12:16:22 6450 6

原创 RTSP/RTMP推流组件PushStream推送PS流到nginx-rtmp示例

技术在于交流、沟通,转载请注明出处并保持作品的完整性。原文:https://blog.csdn.net/hiwubihe/article/details/84670875 [本系列相关文章]基于c++实现RTSP/RTMP推流组件PushStream简介 RTSP/RTMP推流组件PushStream推送H264到EasyDarwin示例 RTSP/RTMP推流组件PushStre...

2018-12-01 09:57:42 1714

原创 RTSP/RTMP推流组件PushStream推送(H264+AAC)流到nginx-rtmp示例

技术在于交流、沟通,转载请注明出处并保持作品的完整性。原文:https://blog.csdn.net/hiwubihe/article/details/84670875 [本系列相关文章]基于c++实现RTSP/RTMP推流组件PushStream简介 RTSP/RTMP推流组件PushStream推送H264到EasyDarwin示例 RTSP/RTMP推流组件PushStre...

2018-12-01 09:56:57 1260

原创 RTSP/RTMP推流组件PushStream推送H264流到nginx-rtmp示例

技术在于交流、沟通,转载请注明出处并保持作品的完整性。原文:https://blog.csdn.net/hiwubihe/article/details/84670875 [本系列相关文章]基于c++实现RTSP/RTMP推流组件PushStream简介 RTSP/RTMP推流组件PushStream推送H264到EasyDarwin示例 RTSP/RTMP推流组件PushStre...

2018-12-01 09:56:10 1586

原创 RTSP/RTMP推流组件PushStream推送PS流到EasyDarwin示例

技术在于交流、沟通,转载请注明出处并保持作品的完整性。原文:https://blog.csdn.net/hiwubihe/article/details/84670875 [本系列相关文章]基于c++实现RTSP/RTMP推流组件PushStream简介 RTSP/RTMP推流组件PushStream推送H264到EasyDarwin示例 RTSP/RTMP推流组件PushStre...

2018-12-01 09:48:14 1057

原创 RTSP/RTMP推流组件PushStream推送(H264+AAC)到EasyDarwin示例

技术在于交流、沟通,转载请注明出处并保持作品的完整性。原文:https://blog.csdn.net/hiwubihe/article/details/84670875 [本系列相关文章]  基于c++实现RTSP/RTMP推流组件PushStream简介 RTSP/RTMP推流组件PushStream推送H264到EasyDarwin示例 RTSP/RTMP推流组件Pu...

2018-12-01 09:41:33 3723

原创 RTSP/RTMP推流组件PushStream推送G711到EasyDarwin示例

技术在于交流、沟通,转载请注明出处并保持作品的完整性。原文:https://blog.csdn.net/hiwubihe/article/details/84670851[本系列相关文章]基于c++实现RTSP/RTMP推流组件PushStream简介 RTSP/RTMP推流组件PushStream推送H264到EasyDarwin示例 RTSP/RTMP推流组件PushStrea...

2018-12-01 09:38:44 1515 1

原创 RTSP/RTMP推流组件PushStream推送AAC到EasyDarwin示例

技术在于交流、沟通,转载请注明出处并保持作品的完整性。原文:https://blog.csdn.net/hiwubihe/article/details/84670823 [本系列相关文章]基于c++实现RTSP/RTMP推流组件PushStream简介 RTSP/RTMP推流组件PushStream推送H264到EasyDarwin示例 RTSP/RTMP推流组件PushStre...

2018-12-01 09:34:53 992 2

原创 RTSP/RTMP推流组件PushStream推送H264到EasyDarwin示例

技术在于交流、沟通,转载请注明出处并保持作品的完整性。原文:https://blog.csdn.net/hiwubihe/article/details/84670787 [本系列相关文章] 基于c++实现RTSP/RTMP推流组件PushStream简介 RTSP/RTMP推流组件PushStream推送H264到EasyDarwin示例 RTSP/RTMP推流组件PushS...

2018-12-01 09:31:10 3925 1

原创 基于c++实现RTSP/RTMP推流组件PushStream简介

技术在于交流、沟通,转载请注明出处并保持作品的完整性。原文:https://blog.csdn.net/hiwubihe/article/details/84639975 [本系列相关文章]基于c++实现RTSP/RTMP推流组件PushStream简介 RTSP/RTMP推流组件PushStream推送H264到EasyDarwin示例 RTSP/RTMP推流组件PushStre...

2018-11-29 21:22:03 10509 2

原创 RTP打包G711音频数据发送

前面博客讲过G711编码,有两种G711A/G711U,主要在安防中应用,是一帧波形编码的音频数据,只是将PCM压缩一半数据量。一般G711,采样率8000,通道数1。所以G711中1B就是一个样本数据。G711打包RTP非常简单,只要在G711数据前加上RTP头即可。G711没有想AAC那样,按照帧一帧一帧发送,而是设定一个打包频率,打包频率有10ms,20ms,30ms,40ms 等。如40m...

2018-11-27 20:23:09 11739 12

原创 C++11实现的定时器

分享一个基于C++11实现的定时器,当有多个定时任务时,向定时器里面添加定时任务,定时器到时间自动执行事件,编译环境(GCC) 4.7.2 ,参考代码Timer.h#ifndef _X_TIMER_H#define _X_TIMER_H#include &lt;map&gt;#include &lt;unordered_map&gt;#include &lt;chrono&gt...

2018-11-18 22:56:14 2041

原创 RTSP基础之RTSP/RTP OVER TCP

这里分析一下RTSP/RTP OVER TCP信令流程,主要分析工具 live555 RTSP服务器,wireshark抓包工具,vlc RTSP拉流客户端。说明一下VLC设置RTSP请求OVER TCP的方法:“工具”--&gt;"首选项",按照下图设置。信令流程 OPTIONS rtsp://192.168.1.113/Titanic.mkv RTSP/1.0CSeq: 2U...

2018-11-13 10:15:24 2054 1

原创 RTSP基础之EasyDarwin流媒体转发环境搭建

这里只是最基本EasyDarwin配置,Windows版本EasyDarwin,配置基本完成,下载地址:点这里,下载完把EasyDarwin-Windows-x86_64解压到windows中。1.启动EasyDarwin,运行EasyDarwin/start.bat启动EasyDarwin。或者右键以管理员身份运行install service.bat,安装EasyDarwin服务,以服务方...

2018-11-12 12:18:55 2417

原创 RTSP基础之RTSP/RTP OVER UDP

这里分析一下RTSP/RTP OVER UDP信令流程,主要分析工具 live555 RTSP服务器,wireshark抓包工具,vlc RTSP拉流客户端。通过UDP方式拉RTSP流,一般应用于局域网内,因特网因为防火墙原因会端口不可达。笔者参与开发的“电网视频监控系统及接口”国网标准中录像回放就是采用RTSP作为信令协议,采用RTP OVER UDP方式传输音视频流的。总体思路就是首先进行信令...

2018-11-12 11:26:36 3186

原创 RTSP基础之RTSP/RTP推流协议流程

这里分析一下RTSP/RTP 推流信令流程,主要分析工具 EasyDarwin RTSP服务器,wireshark抓包工具,ffmpeg RTSP推流客户端。OPTIONS rtsp://192.168.1.108:554/live.sdp RTSP/1.0CSeq: 1User-Agent: Lavf57.71.100RTSP/1.0 200 OKServer: EasyDarw...

2018-11-12 11:24:57 8241 1

原创 RTMP基础之NGINX流媒体转发环境搭建

Windows版本nginx安装启动这里只是最基本nginx配置,Windows版本nginx,支持RTMP模块已经配置完成,并建立live实例,下载地址:点这里,下载完把nginx-1.7.11.3-Gryphon放入一个没有中文的路径中。1 启动nginx,管理员权限启动 nginx.exe -c conf/nginx-win-rtmp.conf2 测试是否启动,输入“http:/...

2018-11-11 12:27:04 3689

element.rar

HLS播放器DEMO,可以当作hls测试工具,非常好用

2019-10-23

FfmpegStaticDemo.tar.gz

ffmpeg 编译成静态库,linux64,CENTOS ,gcc 7.4

2019-10-16

南方电网变电站视频及环境监控系统技术规范20140525_目录_最新.pdf

为实现对 南方五省区 变电站及发电厂内视频信息和环境信息(包括温湿度、水浸、门禁、风力等)的实时监测及应用,彻底解决不同厂家系统之间的互联互通等问题,实现站内设备工况远程监视、远程操作辅助监视、现场工作行为监督、事故及障碍辅助分析、应急指挥及演练、反事故演习、安全警卫、各类专项检查等功能,中国南方电网有限责任公司生产技术部组织编制了本规范。

2019-08-20

RTMP/RTSP推流组件推送H264到EasyDarwin_2

介绍一个基于C++开发的RTSP/RTMP推流组件PushStream,PushStream推流基础组件是一款推送流媒体音/视频流给标准RTSP流媒体服务器 (如EasyDarwin、Wowza) 或者RTMP流媒体服务器 (如Nginx) 的流媒体推送库

2018-12-09

NGINX+RTMP+FLASH_Player配置好直接用

部署好的FLASH播放器集成在nginx服务器上,已经配置好了nginx服务器和RTMP服务器模块,启动nginx后HTTP和RTMP服务器都开启了,播放器都放在NGINX相应的目录里面。

2018-12-06

RTMP/RTSP推流组件推送摄像机IPC(H264)到EasyDarwin

介绍一个基于C++开发的RTSP/RTMP推流组件PushStream,PushStream推流基础组件是一款推送流媒体音/视频流给标准RTSP流媒体服务器 (如EasyDarwin、Wowza) 或者RTMP流媒体服务器 (如Nginx) 的流媒体推送库

2018-12-04

RTMP/RTSP推流组件推送H265到EasyDarwin

介绍一个基于C++开发的RTSP/RTMP推流组件PushStream,PushStream推流基础组件是一款推送流媒体音/视频流给标准RTSP流媒体服务器 (如EasyDarwin、Wowza) 或者RTMP流媒体服务器 (如Nginx) 的流媒体推送库

2018-12-03

RTMP/RTSP推流组件推送H264+AAC到EasyDarwin

介绍一个基于C++开发的RTSP/RTMP推流组件PushStream,PushStream推流基础组件是一款推送流媒体音/视频流给标准RTSP流媒体服务器 (如EasyDarwin、Wowza) 或者RTMP流媒体服务器 (如Nginx) 的流媒体推送库

2018-12-03

RTMP/RTSP推流组件推送G711到EasyDarwin

介绍一个基于C++开发的RTSP/RTMP推流组件PushStream,PushStream推流基础组件是一款推送流媒体音/视频流给标准RTSP流媒体服务器 (如EasyDarwin、Wowza) 或者RTMP流媒体服务器 (如Nginx) 的流媒体推送库

2018-12-03

RTMP/RTSP推流组件推送AAC到EasyDarwin

介绍一个基于C++开发的RTSP/RTMP推流组件PushStream,PushStream推流基础组件是一款推送流媒体音/视频流给标准RTSP流媒体服务器 (如EasyDarwin、Wowza) 或者RTMP流媒体服务器 (如Nginx) 的流媒体推送库

2018-12-03

G711打包RTP发送VLC播放

DEMO程序采用JRTPLIB实现 ,把G711音频数据打包成RTP发送到指定端口。

2018-11-27

基于C++11实现的定时器

分享一个基于C++11实现的定时器,当有多个定时任务时,向定时器里面添加定时任务,定时器到时间自动执行事件,编译环境(GCC) 4.7.2

2018-11-18

Windows版本EasyDarwin

这里只是最基本EasyDarwin配置,Windows版本EasyDarwin,配置基本完成,下载完把EasyDarwin-Windows-x86_64解压到windows中。

2018-11-12

windows版本编译配置好nginx

这里只是最基本nginx配置,Windows版本nginx,支持RTMP模块已经配置完成,并建立live实例,下载完把nginx-1.7.11.3-Gryphon放入一个没有中文的路径中。

2018-11-12

音频处理基础包括pcm/wav/aac/G711a/G711u

介绍音频处理基础知识,介绍常见的音频问题处理。主要包含以下内容 WAV头解析并保持PCM,PCM文件加WAV头,ADTS格式AAC帧获取,PCM转G711A/G711U

2018-09-17

解复用FLV文件(基于FFMPEG解析FLV(h264+aac))

基于FFMPEG解析FLV文件,FLV由H264视频和AAC音频组成。

2018-09-03

FFMPEG实现PCM编码AAC和MP3(采用封装格式实现)

基于FFMPEG实现把PCM编码成AAC或者MP3格式的视频文件,编码的比特率都是64kbps,代码中AAC格式编码不需要音频重采样,而MP3格式编码只支持样本平行存储的方式。

2018-07-28

FFMPEG实现音频重采样

FFMPEG实现音频重采样,示例代码实现将PCM的交叉存储方式转换成平行存储方式

2018-07-28

H264和音频流打包成TS流 (MPEG2-TS)

基于C/C++提供一个TS流的打包库TsMuxer.dll,并提供DEMO测试程序

2018-07-03

协议按位赋值及解析总结

协议开发字段是按照位定义的,总结一下处理方式,以便以后拿来即用

2018-06-28

把H264和音频流打包成PS流

基于C/C++提供一个PS流的打包库PsMuxer.dll,并提供DEMO测试程序

2018-06-19

EasyMakefile.zip

一个通用的Makefile 工程框架,支持不同OS ,不同CPU体系结构。

2017-06-12

window COREdump文件生成 c++代码

在window程序中,添加代码一边在程序崩溃时候产生coredump,能准确定位崩溃地点。

2016-09-23

一个开源的跨平台ini文件解析器

ini文件是window所用的初始化文件,一些轻量级的配置文件可以采用,非常好用,在其他系统中也可以应用到自己的项目中,这里分享一个跨平台的Ini文件解析器

2016-09-23

ffmepg音频重采样DEMO

在进行音频播放时,有时视频流不能满足播放要求,需要对声音的相关属性如:通道数,采样率,样本存储方式进行变更播放,也就是音频重采样。ffmpeg提供了SwrContext进行转换。

2016-08-02

QT自定义窗口 自由拖动 自定义标题

QT自定义窗口 自由拖动 自定义标题

2016-06-19

qt实现类似QQ伸缩窗口--鼠标事件应用

QT实现一个窗体中包含左右两个窗体,通过鼠标事件,隐藏左边窗口,右边窗口伸展。在点击,显示左边窗口。

2016-06-06

qt实现二维码示例

采用的就是QZXing库实现的二维码解析DEMO

2016-06-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除