<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[老王的技术博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/ericbar</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ericbar]]></copyright><item><title><![CDATA[Android下使用Gson fromJson数据总是返回null]]></title><link>https://blog.youkuaiyun.com/ericbar/article/details/109293608</link><guid>https://blog.youkuaiyun.com/ericbar/article/details/109293608</guid><author>ericbar</author><pubDate>Mon, 26 Oct 2020 17:16:03 +0800</pubDate><description><![CDATA[Android下使用Gson fromJson数据总是返回null
Gson的使用相当简单，可以在json和java对象之间很方便的做转换，特别是依赖GsonFormat 工具，可以自动生成POJO的Bean/类，使用方法网上介绍很多，就不再熬述。
最近在Android client端对接某开源平台，通过Restful API返回json对象，但是通过Gson的fromJson返回时，虽然对象非空，但是属性数据总是空，最后找到原因是和混淆有关，因为Android上APK一般我们是做了混淆处理的，所以我们在映]]></description><category></category></item><item><title><![CDATA[隐私政策]]></title><link>https://blog.youkuaiyun.com/ericbar/article/details/94897152</link><guid>https://blog.youkuaiyun.com/ericbar/article/details/94897152</guid><author>ericbar</author><pubDate>Sat, 06 Jul 2019 20:58:52 +0800</pubDate><description><![CDATA[本应用尊重并保护所有使用服务用户的个人隐私权。为了给您提供更准确、更有个性化的服务，本应用会按照本隐私权政策的规定使用和披露您的个人信息。但本应用将以高度的勤勉、审慎义务对待这些信息。除本隐私权政策另有规定外，在未征得您事先许可的情况下，本应用不会将这些信息对外披露或向第三方提供。本应用会不时更新本隐私权政策。 您在同意本应用服务使用协议之时，即视为您已经同意本隐私权政策全部内容。本隐私权政策属于...]]></description><category></category></item><item><title><![CDATA[基于VMware安装macOS 10.14.5（Mojave）遇到的几点问题]]></title><link>https://blog.youkuaiyun.com/ericbar/article/details/93310636</link><guid>https://blog.youkuaiyun.com/ericbar/article/details/93310636</guid><author>ericbar</author><pubDate>Sun, 23 Jun 2019 10:52:00 +0800</pubDate><description><![CDATA[写在前面
基于VMware虚拟机安装苹果系统（黑苹果）仅可用于学习研究，不要用于商业用途。
安装方法
安装方法网上已经介绍的很多了，这里就不再熬述，可以参考如下作者的文章：
https://www.applex.net/threads/pc-vmware-macos.92998/
要注意的是vmx文件中，如下这条字典的添加：
 smc.version = "0"

否则虚拟器启动会报错。
macO...]]></description><category></category></item><item><title><![CDATA[在Android Studio 3中自动产生jni头文件的方法]]></title><link>https://blog.youkuaiyun.com/ericbar/article/details/89089253</link><guid>https://blog.youkuaiyun.com/ericbar/article/details/89089253</guid><author>ericbar</author><pubDate>Mon, 08 Apr 2019 15:49:35 +0800</pubDate><description><![CDATA[前言
最近开发一个需要支持native的项目，开发环境已经迁移到Android Studio，现在的最新版本是3.3.2，前期我在博文  https://blog.youkuaiyun.com/ericbar/article/details/80252171 中已经大概描述过eclipse的相关配置方法，总体来说也是大同小异的，无非就是配置ndk路径，在java文件里编写本地方法声明并调用，通过javah产生...]]></description><category></category></item><item><title><![CDATA[在Android Studio中添加com.android.support:design的支持]]></title><link>https://blog.youkuaiyun.com/ericbar/article/details/89065603</link><guid>https://blog.youkuaiyun.com/ericbar/article/details/89065603</guid><author>ericbar</author><pubDate>Sun, 07 Apr 2019 10:17:06 +0800</pubDate><description><![CDATA[关于Material Design
Google在2015的IO大会上，给我们带来了Material Design的设计规范，同时，也给我们带来了全新的Android Design Support Library，利用这个库在Android上可以做一些相对统一风格的UI界面。
导入包
如何在Android Studio中导入Android Design Support Library，搜索网络上大...]]></description><category></category></item><item><title><![CDATA[编译Android版的WebRTC]]></title><link>https://blog.youkuaiyun.com/ericbar/article/details/83114015</link><guid>https://blog.youkuaiyun.com/ericbar/article/details/83114015</guid><author>ericbar</author><pubDate>Wed, 17 Oct 2018 22:14:05 +0800</pubDate><description><![CDATA[写在前面
最近有兴趣研究一下webrtc，由于这几年一直有基于chromium浏览器的源码开发，在src/third_party下是能看到webrtc的目录的，只是一直没有真正单独编译过webrtc，国庆期间在家闲着编译了一把，现在把步骤记录一下。

...]]></description><category></category></item><item><title><![CDATA[关于FFmpeg里的GPL和LGPL协议]]></title><link>https://blog.youkuaiyun.com/ericbar/article/details/81079955</link><guid>https://blog.youkuaiyun.com/ericbar/article/details/81079955</guid><author>ericbar</author><pubDate>Tue, 17 Jul 2018 13:54:34 +0800</pubDate><description><![CDATA[参考博文

谢谢博主的分享：http://www.cnblogs.com/findumars/p/3556883.html



GPL介绍

我们很熟悉的Linux就是采用了GPL。GPL协议和BSD, Apache Licence等鼓励代码重用的许可很不一样。GPL的出发点是代码的开源/免费使用和引用/修改/衍生代码的开源/免费使用，但不允许修改后和衍生的代 码做为闭源的商业软件发布和销售。这...]]></description><category></category></item><item><title><![CDATA[AAC 文件解析及解码流程]]></title><link>https://blog.youkuaiyun.com/ericbar/article/details/81065749</link><guid>https://blog.youkuaiyun.com/ericbar/article/details/81065749</guid><author>ericbar</author><pubDate>Mon, 16 Jul 2018 18:42:49 +0800</pubDate><description><![CDATA[原文地址

感谢博主的分享， https://blog.youkuaiyun.com/wlsfling/article/details/5876016

AAC概述

AAC是高级音频编码（Advanced Audio Coding）的缩写，出现于1997年，最初是基于MPEG-2的音频编码技术。由Fraunhofer IIS、Dolby Laboratories、AT&amp;amp;T、Sony等公司共同开发，目...]]></description><category></category></item><item><title><![CDATA[移植ffplay媒体播放器和sdl2到Android平台]]></title><link>https://blog.youkuaiyun.com/ericbar/article/details/80807852</link><guid>https://blog.youkuaiyun.com/ericbar/article/details/80807852</guid><author>ericbar</author><pubDate>Mon, 25 Jun 2018 22:52:27 +0800</pubDate><description><![CDATA[前言

前述博文《基于FFmpeg和Android的音视频同步播放实现》中，我们按照自己的方法实现了一个简单的媒体播放器，并做了音视频同步。但是这个程序在播放更多码流时，遇到了一些问题，包括视频解码问题，同步时视频卡顿等。我们在博文《在ubuntu16.04下测试ffplay程序》中也测试过ffplay这个强大的播放器，而我们也知道SDL基于Android平台也有支持，所以我们可以将ffplay和...]]></description><category></category></item><item><title><![CDATA[基于FFmpeg和Android的音视频同步播放实现]]></title><link>https://blog.youkuaiyun.com/ericbar/article/details/80785764</link><guid>https://blog.youkuaiyun.com/ericbar/article/details/80785764</guid><author>ericbar</author><pubDate>Sat, 23 Jun 2018 22:16:57 +0800</pubDate><description><![CDATA[前言

在以前的博文中，我们通过FFmpeg解码，并基于OpenGL ES完成了视频的渲染，也完成了基于OpenSL ES实现的native音频注入播放。 本文将这两部分代码进行合并，并实现音视频的同步播放。



实现需求


基于FFmpeg实现视频解码，并通过OpenGL ES进行渲染；
基于OpenSL ES进行PCM注入播放；
播放时进行音视频同步；




关于音视频同步原理

本文不...]]></description><category></category></item><item><title><![CDATA[基于FFmpeg和OpenSL ES的Android音频播放器实现]]></title><link>https://blog.youkuaiyun.com/ericbar/article/details/80571291</link><guid>https://blog.youkuaiyun.com/ericbar/article/details/80571291</guid><author>ericbar</author><pubDate>Mon, 04 Jun 2018 22:15:04 +0800</pubDate><description><![CDATA[前言

在博文https://blog.youkuaiyun.com/ericbar/article/details/80509887中，我们实现了通过FFmpeg解码，并基于OpenGL ES完成了视频的渲染。本文我们将基于OpenSL ES完成native音频的注入播放。 
OpenSL ES也是The Khronos Group Inc组织制定的一个音频规范，网上资料很多，在Android SDK代码里...]]></description><category></category></item><item><title><![CDATA[通过FFmpeg解码和OpenGL的YUV转RGB实现Android视频播放]]></title><link>https://blog.youkuaiyun.com/ericbar/article/details/80509887</link><guid>https://blog.youkuaiyun.com/ericbar/article/details/80509887</guid><author>ericbar</author><pubDate>Wed, 30 May 2018 17:21:33 +0800</pubDate><description><![CDATA[前言

在我的博文 https://blog.youkuaiyun.com/ericbar/article/details/80506390 中，我们在Android平台上，实现了通过FFmpeg在native（C/C++）层进行视频解码，并通过OpenGL实现了硬件渲染工作，减少CPU的消耗，提高整个视频播放的性能。 
但是，FFmpeg解码后的YUV视频数据，仍然是通过软件方式转成RGB565的，效率极其...]]></description><category></category></item><item><title><![CDATA[基于FFmpeg解码和OpenGL ES渲染的Android视频播放]]></title><link>https://blog.youkuaiyun.com/ericbar/article/details/80506390</link><guid>https://blog.youkuaiyun.com/ericbar/article/details/80506390</guid><author>ericbar</author><pubDate>Wed, 30 May 2018 14:36:23 +0800</pubDate><description><![CDATA[前言

在我的博文 https://blog.youkuaiyun.com/ericbar/article/details/80416328 中，我们在Android平台上，实现了通过FFmpeg在native（C/C++）层进行视频解码，并通过SurfaceView（基于ANativeWindow）实现了图像的显示。 
实际上，我们也可以通过OpenGL来进行硬件的渲染工作，减少CPU的消耗，提高整个视频播...]]></description><category></category></item><item><title><![CDATA[OpenGL之EGL入门知识]]></title><link>https://blog.youkuaiyun.com/ericbar/article/details/80506534</link><guid>https://blog.youkuaiyun.com/ericbar/article/details/80506534</guid><author>ericbar</author><pubDate>Wed, 30 May 2018 10:48:34 +0800</pubDate><description><![CDATA[参考博文

本来材料参考下述博文，感谢作者 ： 
https://blog.youkuaiyun.com/ba_jie/article/details/6370701



概述

EGL是由Khronos Group提供的一组平台无关的API，它的主要功能如下： 
1. 和本地窗口系统（native windowing system）通讯； 
2. 查询可用的配置； 
3. 创建OpenGL ES可用的“绘...]]></description><category></category></item><item><title><![CDATA[FFmpeg视频解码中的YUV420P格式]]></title><link>https://blog.youkuaiyun.com/ericbar/article/details/80505658</link><guid>https://blog.youkuaiyun.com/ericbar/article/details/80505658</guid><author>ericbar</author><pubDate>Wed, 30 May 2018 10:16:42 +0800</pubDate><description><![CDATA[参考文章

在做基于FFmpeg解码的视频播放时，需要涉及到帧数据存储的YUV与RGB格式，所以了解了一下，参考下述博文。 
https://blog.youkuaiyun.com/lanxiaziyi/article/details/74139729#avframe-%E4%B8%8E-yuv420%E9%82%A3%E4%BA%9B%E4%BA%8B



发展史


视网膜存在三种视锥细胞，分别含有对红...]]></description><category></category></item><item><title><![CDATA[图像色彩编码YUV（YCbCr）的基本知识]]></title><link>https://blog.youkuaiyun.com/ericbar/article/details/80504801</link><guid>https://blog.youkuaiyun.com/ericbar/article/details/80504801</guid><author>ericbar</author><pubDate>Wed, 30 May 2018 09:39:34 +0800</pubDate><description><![CDATA[参考地址

https://www.cnblogs.com/lifan3a/articles/4930182.html

YUV与YCbCr的定义

YCbCr是DVD、摄像机、数字电视等消费类视频产品中，常用的色彩编码方案。YCbCr 有时会称为 YCC。YCbCr 在模拟分量视频（analog component video）中也常被称为 YPbPr。YCbCr不是一种绝对色彩空间，是YUV压...]]></description><category></category></item><item><title><![CDATA[基于FFmpeg和SurfaceView实现Android原生窗口（ANativeWindow）的视频播放]]></title><link>https://blog.youkuaiyun.com/ericbar/article/details/80416328</link><guid>https://blog.youkuaiyun.com/ericbar/article/details/80416328</guid><author>ericbar</author><pubDate>Wed, 23 May 2018 21:58:37 +0800</pubDate><description><![CDATA[实现需求


只演示视频解码和显示，不进行音频解码，也不做音视频同步，每一帧视频之间通过固定延时来间隔，所以视频播放时存在偏慢和偏快的问题；
基于FFmpeg来进行解码，而不是基于Android自带的MediaPlayer播放器，也不基于Android的mediacodec硬件解码；
视频显示层，在JAVA层基于SurfaceView，在原生（本地C/C++）层基于ANativeWindow来实现...]]></description><category></category></item><item><title><![CDATA[基于eclipse进行ndk开发的环境配置]]></title><link>https://blog.youkuaiyun.com/ericbar/article/details/80252171</link><guid>https://blog.youkuaiyun.com/ericbar/article/details/80252171</guid><author>ericbar</author><pubDate>Wed, 09 May 2018 21:49:22 +0800</pubDate><description><![CDATA[写在开头

虽然我们在其他的博文中（如https://blog.youkuaiyun.com/ericbar/article/details/76602720和https://blog.youkuaiyun.com/ericbar/article/details/80229592），早就见识了ndk的强大，也基于ndk环境编译出了我们需要的libffmpeg.so库，但是如果想要在Android设备运行包含这些so的应用...]]></description><category></category></item><item><title><![CDATA[基于ndk-r16b编译Android平台的FFmpeg-3.4.2和FFmpeg-4.0动态库]]></title><link>https://blog.youkuaiyun.com/ericbar/article/details/80229592</link><guid>https://blog.youkuaiyun.com/ericbar/article/details/80229592</guid><author>ericbar</author><pubDate>Mon, 07 May 2018 19:20:58 +0800</pubDate><description><![CDATA[问题来源

基于NDK编译Android平台的FFmpeg动态库，这件事情我们早在去年就做过了，详细的可以参考我的博文： 
https://blog.youkuaiyun.com/ericbar/article/details/76602720， 
但是FFmpeg的基线版本以及ndk编译链是不断更新的，近期我打算基于最新的FFmpeg版本和ndk版本编译libffmpeg.so时，又遇到了麻烦，各种编译问题...]]></description><category></category></item><item><title><![CDATA[关于媒体编解码以及封装那点事]]></title><link>https://blog.youkuaiyun.com/ericbar/article/details/79883203</link><guid>https://blog.youkuaiyun.com/ericbar/article/details/79883203</guid><author>ericbar</author><pubDate>Tue, 10 Apr 2018 17:25:48 +0800</pubDate><description><![CDATA[前言

从事音视频相关研究的工程师，免不了涉及编码，解码，复用（封装），解复用（解封装）等概念，还可能涉及到播放器，编码器等程序或硬件。现在火爆的互联网直播，小视频还有各种P2P视频通话等，其基本原理都十分类似。



播放器媒体流图



从上图可以看出，通用的播放器（如FFmpeg中的ffplay）设计都遵循这样的媒体流过程。 
Source代表媒体源，有可能是来自本地设备（U盘，移动硬盘，文...]]></description><category></category></item></channel></rss>