<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[coding_man_xie的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/coding_man_xie</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; coding_man_xie]]></copyright><item><title><![CDATA[【无标题】]]></title><link>https://blog.youkuaiyun.com/coding_man_xie/article/details/122174143</link><guid>https://blog.youkuaiyun.com/coding_man_xie/article/details/122174143</guid><author>coding_man_xie</author><pubDate>Mon, 27 Dec 2021 15:59:27 +0800</pubDate><description><![CDATA[系列文章目录

提示：这里可以添加系列文章的所有文章的目录，目录需要自己手动添加
例如：第一章 Python 机器学习入门之pandas的使用

提示：写完文章后，目录可以自动生成，如何生成可参考右边的帮助文档




文章目录

系列文章目录
	前言
	一、pandas是什么？
	二、使用步骤
	1.引入库
		2.读入数据
	
	总结




前言

提示：这里可以添加本文要记录的大概内容：
例如：随着人工智能的不断发展，机器学习这门技术也越来越重要，很多人都开启了学习机器学习，本文就介绍了机器学习的基]]></description><category></category></item><item><title><![CDATA[Android音视频编辑器架构图与分析]]></title><link>https://blog.youkuaiyun.com/coding_man_xie/article/details/121916338</link><guid>https://blog.youkuaiyun.com/coding_man_xie/article/details/121916338</guid><author>coding_man_xie</author><pubDate>Tue, 14 Dec 2021 00:52:09 +0800</pubDate><description><![CDATA[目前市面上音视频交互框架基本上分两种，一个是类似抖音快手那样的从相机交互界面出发的，往相机帧加美颜，贴纸等各种特效的交互，另一个是类似剪映，必剪等更专业一点的视频编辑软件，它增加了多轨道，转场等一些更复杂的效果。





不过万变不离其宗，都是解出视频帧，然后对视频帧做特效，然后合成视频这一流程。接下来我们就来讲讲整个流程中每个阶段我们会用到什么技术

1. 解码出视频帧与音频帧：这里有两个技术方案，用FFmpeg软解和用MediaCodec硬解。用FFmepg软解的话基本都是在FFmpeg的...]]></description><category></category></item><item><title><![CDATA[android AudioRecord 录制音频]]></title><link>https://blog.youkuaiyun.com/coding_man_xie/article/details/105106168</link><guid>https://blog.youkuaiyun.com/coding_man_xie/article/details/105106168</guid><author>coding_man_xie</author><pubDate>Wed, 25 Mar 2020 22:33:40 +0800</pubDate><description><![CDATA[AudioRecord相较与MediaRecorder拥有更高的灵活性，它的录制输出是音频的原始数据。在录制之前，AudioRecord需要配置几个参数。


 public AudioRecord(int audioSource, int sampleRateInHz, int channelConfig, int audioFormat, int bufferSizeInBytes)

分别是...]]></description><category></category></item><item><title><![CDATA[MediaRecorder录制音频]]></title><link>https://blog.youkuaiyun.com/coding_man_xie/article/details/105060076</link><guid>https://blog.youkuaiyun.com/coding_man_xie/article/details/105060076</guid><author>coding_man_xie</author><pubDate>Mon, 23 Mar 2020 22:45:32 +0800</pubDate><description><![CDATA[Android音视频架构与学习路线

MediaRecorder是Android提供的简单的录制音视频的API，它只能以文件的形式输出。这里我们要讲的是它的录音功能。

比较简单，开始录制前需要配置几个参数


private void initRecorder() {
        try {
            mRecorder = new MediaRecorder();
     ...]]></description><category></category></item><item><title><![CDATA[Android音视频开发-音频篇-音频的原理]]></title><link>https://blog.youkuaiyun.com/coding_man_xie/article/details/104864320</link><guid>https://blog.youkuaiyun.com/coding_man_xie/article/details/104864320</guid><author>coding_man_xie</author><pubDate>Sat, 14 Mar 2020 17:42:06 +0800</pubDate><description><![CDATA[致知在格物，物格而后知至。所谓致知在格物者，言欲致吾之知，在即物而穷其理也                                                           



意思讲的是要探究事物的原理，从而获得智慧。 写代码也是如此，只有了解其中的原理...]]></description><category></category></item><item><title><![CDATA[Android音视频架构-学习路线规划]]></title><link>https://blog.youkuaiyun.com/coding_man_xie/article/details/104829455</link><guid>https://blog.youkuaiyun.com/coding_man_xie/article/details/104829455</guid><author>coding_man_xie</author><pubDate>Sat, 14 Mar 2020 16:56:05 +0800</pubDate><description><![CDATA[接触Android音视频这一块已经有一段时间了，跟普通的应用层开发相比，的确更花费精力。期间为了学习音视频的录制，编码，处理也看过大大小小的几十个项目。总体感觉就是知识比较零散，对刚入门的朋友比较不友好。所以才萌生了写这个Android音视频系统文章的想法，虽然给自己挖了一个深坑，但是相信坚持下来必定能很好的提升自己。另一方面，系统的学习效果肯定要远好于零零散散的补充知识

先来看我自己总结的一个...]]></description><category></category></item><item><title><![CDATA[j2EE连接数据库的增删改查操作]]></title><link>https://blog.youkuaiyun.com/coding_man_xie/article/details/50900424</link><guid>https://blog.youkuaiyun.com/coding_man_xie/article/details/50900424</guid><author>coding_man_xie</author><pubDate>Tue, 15 Mar 2016 21:50:55 +0800</pubDate><description><![CDATA[String sql ="select * from users where name=? and password=?";
		PreparedStatement pstmt =  null;
		Connection con;
        //驱动程序名
        String driver = "com.mysql.jdbc.Driver";
        //URL指向要访问的]]></description><category></category></item><item><title><![CDATA[java希尔排序--ShellSort]]></title><link>https://blog.youkuaiyun.com/coding_man_xie/article/details/50522834</link><guid>https://blog.youkuaiyun.com/coding_man_xie/article/details/50522834</guid><author>coding_man_xie</author><pubDate>Fri, 15 Jan 2016 11:59:29 +0800</pubDate><description><![CDATA[希尔排序的原理:根据需求，如果你想要结果从大到小排列，它会首先将数组进行分组，然后将较大值移到前面，较小值移到后面，最后将整个数组进行插入排序，这样比起一开始就用插入排序减少了数据交换和移动的次数，可以说希尔排序是加强版的插入排序
拿数组5, 2, 8, 9, 1, 3，4来说，数组长度为7，当increment为3时，数组分为两个序列5，2，8和9，1，3，4，第一次排序，9和5比较，1和2比较，]]></description><category></category></item><item><title><![CDATA[java编程知识--初始化]]></title><link>https://blog.youkuaiyun.com/coding_man_xie/article/details/50139829</link><guid>https://blog.youkuaiyun.com/coding_man_xie/article/details/50139829</guid><author>coding_man_xie</author><pubDate>Wed, 02 Dec 2015 01:42:25 +0800</pubDate><description><![CDATA[java尽力保证所有变量在使用前都能得到恰当的初始化 
1：对于方法的局部变量，如果没有初始化，会在编译时出现错误 
如void f(){
  int i;
  i++;  //Error
  }2：如果是类的数据成员，基本数据类型会初始化为默认值，引用会初始化为null然而如果你用类的构造器去初始化数据成员，自动初始化还是会先执行，如public class Counter{
int i;
Cou]]></description><category></category></item><item><title><![CDATA[dialog式的Activity]]></title><link>https://blog.youkuaiyun.com/coding_man_xie/article/details/50123075</link><guid>https://blog.youkuaiyun.com/coding_man_xie/article/details/50123075</guid><author>coding_man_xie</author><pubDate>Tue, 01 Dec 2015 01:38:16 +0800</pubDate><description><![CDATA[默认的activity都是全屏的，如果activity是以dialog的形式与用户交互比普通的dialog更方便，效果也更好。主要是dialog式的activity可以自定义布局，位置也可以自由改变。先定义一个style ：MyDialogTopRight<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="MyDia]]></description><category></category></item><item><title><![CDATA[android基础--AsyncTask]]></title><link>https://blog.youkuaiyun.com/coding_man_xie/article/details/49873187</link><guid>https://blog.youkuaiyun.com/coding_man_xie/article/details/49873187</guid><author>coding_man_xie</author><pubDate>Mon, 16 Nov 2015 22:36:45 +0800</pubDate><description><![CDATA[AsyncTask,是android提供的轻量级的异步类,可以直接继承AsyncTask，需要多个异步操作是handler比较适合。AsyncTask适用一些简单的异步处理。 
一个理解 AsyncTask 的例子：main.xml<?xml version="1.0" encoding="utf-8"?>  
<LinearLayout xmlns:android="http://schemas.]]></description><category></category></item><item><title><![CDATA[android基础--Handler，Loop，MessageQueue]]></title><link>https://blog.youkuaiyun.com/coding_man_xie/article/details/49859109</link><guid>https://blog.youkuaiyun.com/coding_man_xie/article/details/49859109</guid><author>coding_man_xie</author><pubDate>Mon, 16 Nov 2015 02:20:14 +0800</pubDate><description><![CDATA[Handler可以声明在主线程可以声明在新开的线程，只不过在新开的线程定义handler要自己创建一个Looper对象，并通过prepare（）启动它。在ui线程中系统已经初始化了一个Looper对象。先看定义在主线程的情况： protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstan]]></description><category></category></item><item><title><![CDATA[android四大组件之Service]]></title><link>https://blog.youkuaiyun.com/coding_man_xie/article/details/49820825</link><guid>https://blog.youkuaiyun.com/coding_man_xie/article/details/49820825</guid><author>coding_man_xie</author><pubDate>Fri, 13 Nov 2015 17:23:02 +0800</pubDate><description><![CDATA[service与activity都是从Context派生出来。 
先看service的生命周期： 
通过代码看service的几种形式：1首先，最简单的形式直接启动service；public class MyService extends Service {    public MyService() {
    }    @Override
    public IBinder onBind(I]]></description><category></category></item><item><title><![CDATA[java设计模式--原型模式（Prototype）]]></title><link>https://blog.youkuaiyun.com/coding_man_xie/article/details/49669661</link><guid>https://blog.youkuaiyun.com/coding_man_xie/article/details/49669661</guid><author>coding_man_xie</author><pubDate>Thu, 05 Nov 2015 23:21:01 +0800</pubDate><description><![CDATA[Prototype原型模式是一种创建型设计模式，Prototype模式允许一个对象再创建另外一个可定制的对象，根本无需知道任何如何创建的细节,工作原理是:通过将一个原型对象传给那个要发动创建的对象，这个要发动创建的对象通过请求原型对象拷贝它们自己来实施创建原型模式实际上非常简单，只是要实现Cloneable接口。看代码public class Sheep implements Cloneable,S]]></description><category></category></item><item><title><![CDATA[java设计模式--装饰者模式（Decorater Pattern）]]></title><link>https://blog.youkuaiyun.com/coding_man_xie/article/details/49622423</link><guid>https://blog.youkuaiyun.com/coding_man_xie/article/details/49622423</guid><author>coding_man_xie</author><pubDate>Tue, 03 Nov 2015 21:24:46 +0800</pubDate><description><![CDATA[装饰模式是在不必改变原类文件和使用继承的情况下，动态地扩展一个对象的功能。它是通过创建一个包装对象，也就是装饰来包裹真实的对象以下情况使用Decorator模式 
1. 需要扩展一个类的功能，或给一个类添加附加职责。 
2. 需要动态的给一个对象添加功能，这些功能可以再动态的撤销。 
3. 需要增加由一些基本功能的排列组合而产生的非常大量的功能，从而使继承关系变的不现实。 
4. 当不能采用生成子类]]></description><category></category></item><item><title><![CDATA[java设计模式---享元模式]]></title><link>https://blog.youkuaiyun.com/coding_man_xie/article/details/49562159</link><guid>https://blog.youkuaiyun.com/coding_man_xie/article/details/49562159</guid><author>coding_man_xie</author><pubDate>Sun, 01 Nov 2015 21:13:15 +0800</pubDate><description><![CDATA[内存属于稀缺资源，不要随便浪费，如果有很多个相同或者相似的对象，我们就可以通过享元模式来节省内存。 
享元对象能做到共享的关键是区分了内部状态和外部状态。 
   内部状态：可以共享，不会随外部状态的改变而改变。 
   外部状态：不可以共享，会随外部状态的改变而改变。以围棋的棋子为例子，其大小形状相同，颜色分为黑白，只有位置信息不同。 
看代码：interface ChessFlyWeight {]]></description><category></category></item><item><title><![CDATA[java设计模式---桥接模式]]></title><link>https://blog.youkuaiyun.com/coding_man_xie/article/details/49516649</link><guid>https://blog.youkuaiyun.com/coding_man_xie/article/details/49516649</guid><author>coding_man_xie</author><pubDate>Fri, 30 Oct 2015 21:05:03 +0800</pubDate><description><![CDATA[上代码 
1不使用桥接模式的情况：类非常多且繁琐public interface Computer {
    void sale();
}class Desktop implements Computer {
    @Override
    public void sale() {
        System.out.println("销售台式机！");
    }
}class Lapto]]></description><category></category></item><item><title><![CDATA[Gifview的使用]]></title><link>https://blog.youkuaiyun.com/coding_man_xie/article/details/46917391</link><guid>https://blog.youkuaiyun.com/coding_man_xie/article/details/46917391</guid><author>coding_man_xie</author><pubDate>Thu, 16 Jul 2015 21:17:34 +0800</pubDate><description><![CDATA[GifView 是一个为了解决android中现在没有直接显示gif的view,只能通过mediaplay来显示这个问题的项目，其用法和 ImageView一样，支持gif图片使用方法：1-把GifView.jar加入你的项目。2-在xml中配置GifView的基本属性，GifView继承自View类，和Button、ImageView一样是一个UI控件。如：]]></description><category></category></item><item><title><![CDATA[归并排序和快速排序的算法实现]]></title><link>https://blog.youkuaiyun.com/coding_man_xie/article/details/46583833</link><guid>https://blog.youkuaiyun.com/coding_man_xie/article/details/46583833</guid><author>coding_man_xie</author><pubDate>Sun, 21 Jun 2015 20:07:57 +0800</pubDate><description><![CDATA[直接上代码 
归并排序：//将有二个有序数列a[first...mid]和a[mid...last]合并。
void mergearray(int a[], int first, int mid, int last, int temp[])
{
    int i = first, j = mid + 1;
    int m = mid,   n = last;
    int k = 0;]]></description><category></category></item><item><title><![CDATA[android之asset资源]]></title><link>https://blog.youkuaiyun.com/coding_man_xie/article/details/46446719</link><guid>https://blog.youkuaiyun.com/coding_man_xie/article/details/46446719</guid><author>coding_man_xie</author><pubDate>Wed, 10 Jun 2015 21:16:37 +0800</pubDate><description><![CDATA[上几张图片： 
 
来个代码： 
其中test.txt.就是asset文件夹里的文件]]></description><category></category></item></channel></rss>