avatar
文章
126
标签
59
分类
24
首页
分类
标签
时间轴
Logo鹏哥的Blog
搜索
首页
分类
标签
时间轴

鹏哥的Blog

Kotlin总结之三函数及函数式编程
发表于2019-07-26|Kotlin语言
一.Kotlin中的函数函数是执行特定任务的一段代码,程序通过将一段代码定义成函数,并为该函数指定一个函数名,就可以在需要的时候多次调用这段代码,代码复用的重要手段就是通过函数实现的。 1.函数声明定义格式为: 123权限修饰符 fun 函数名(参数名 :类型,...) : 返回值{ //函数执行体} 函数从参数角度,可以分为有参函数以及无参函数;从返回值角度,可以分为有返回值的函数以及没有返回值的函数。那么函数一共就有4种类型,无参无返回值、无参有返回值、有参无返回值、有参有返回值。 1234567891011121314151617181920212223242526272829//无参无返回值fun test() { println("test")} //无参有返回值fun test(): String { return"test"} //有参无返回值fun test(content: String) { ...
Java编译过程及Jvm详解
发表于2019-07-24|Java语言
一.Jvm简介1.JVM是什么?JVM是Java Virtual Machine(Java虚拟机)的缩写,也就是指的JVM虚拟机,是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。众所周知,java语言是跨平台的,而JVM是java跨平台的关键之所在,JVM上执行java字节码,执行时这些字节码可以解释成具体平台的机器码,因此java拥有“一次编译,处处运行”这一跨平台能力。 2.JRE、JDK和JVM的关系JRE(Java Runtime Environment, Java运行环境)是Java平台,所有的JAVA程序都要在JRE下才能够运行,包括JVM和Java核心类库和支持文件。JDK(Java Development Kit,Java开发工具包)是用来编译、调试Java程序的开发工具包,包括Java工具(javac/java/jdb等)和Java基础的类库(java API )。JVM(Java Virtual Machine,...
使用FFmpeg命令对音视频进行基础的编辑
发表于2019-07-11|音视频开发
一.FFmpeg基础知识1.FFmpeg简介FFmpeg的名称来自MPEG视频编码标准,前面的“FF”代表“Fast Forward”,FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为视频流的开源计算机程序。可以轻易地实现多种视频格式之间的相互转换。它提供了录制、转换以及流化音视频的完整解决方案。 2.安装FFmpeg ffmpeg官网下载。 配置好环境变量,比如将c:\ffmpeg\bin路径配置到环境变量中去,这样bin下面的ffmpeg.exe就可以在命令行中使用了,可以用ffmpeg...
CI-CD工具之Jenkins
发表于2019-07-10|CI/CD
一.CI/CD(持续集成/持续部署)软件开发周期中需要一些可以帮助开发者提升速度的自动化工具。其中工具最重要的目的是促进软件项目的持续集成与交付。通过CI/CD工具,开发团队可以保持软件更新并将其迅速的投入实践中。CI/CD也被认为是敏捷开发的最重要实践之一。具体而言,CI/CD 可让持续自动化和持续监控贯穿于应用的整个生命周期(从集成和测试阶段,到交付和部署)。这些关联的事务通常被统称为”CI/CD 管道”,由开发和运维团队以敏捷方式协同支持。 1.持续集成Continuous Integration:持续集成,简称CI,是软件开发周期的一种实践,把代码仓库(Gitlab或者Github)、构建工具(如Jenkins)和测试工具(SonarQube)集成在一起,频繁的将代码合并到主干然后自动进行构建和测试。 2.持续交付Continuous...
Kotlin总结之二数组和集合容器
发表于2019-07-09|Kotlin语言
一 Kotlin中的数组1.数组的类型 kotlin java IntArray int[] ShortArray short[] LongArray long[] FloatArray float[] DoubleArray double[] CharArray char[] 2.数组的创建java创建数组的两种方式: 12int[] intArray = new int[6] //表达式:数据类型[] 标识 = new 数据类型[长度];String[] strArray = {"value0","value1"} //表达式: 数据类型[] 标识 =...
Android数据绑定DataBinding
发表于2019-07-01|Android开发
一.DataBinding简介MVVM架构的核心就是数据驱动,数据驱动的意思就是,数据更新的时候,自动刷新UI。采用MVVM架构会节省大量的更新UI的代码,并且数据更新后主动出发UI更新这种方式,更难出错,鲁棒性更强。且不需要关注数据变化的时机,是需要关注数据变化的结果即可。 1.开启DataBinding功能 使用最新版的AndroidStudio,至少AS3.0以上。 在项目module下的build.gradle的android闭包下,配置 databinding{enabled=true}。 对于布局的xml文件,将原有的正常布局,外面用包裹作为跟节点。节点下存放用于xml布局的一些变量,工具类之类的。 打开布局文件,选中根布局的 ViewGroup,按住 Alt + 回车键,点击 “Convert to data binding layout”,就可以生成 DataBinding 需要的布局规则 2.DataBinding简单使用(1.)声明一个数据对象12package com.peng.databindingdemo.modeldata class...
Kotlin总结之一变量常量及流程控制
发表于2019-06-20|Kotlin语言
一.Kotlin中的变量1.var 与 val var 用此关键字声明的变量,可以多次重复赋值,可读且可写,相当于Java中普通变量。 val 用此关键字声明的变量表示只读变量,即可读但不可写。相当于Java中用final修饰的变量。123456var str: String = "" //str是变量名,String表明该变量是String类型变量,后面就是赋值语句。var str2= "" //省略了声明变量类型,它可以根据赋的值而自动推断出类型。str="1234" //var 声明的变量可以重新赋值。val str3= " " //val申明的变量不能够再次赋值str3= "123456 " //再次赋值会报错...
Android音视频开发总结之三网络直播技术
发表于2019-06-18|Android开发
一. 直播流程总览目前主流的直播架构中主要有两种方案,即流媒体转发、P2P。流媒体转发,是一种在视频直播中以流的方式将连续的音、视频数据经编码压缩后传输到流媒体服务器,用户实时从服务器获取流媒体资源,而不必要等待整个文件下载文件完毕的C/S架构视频直播方案;P2P直播,是一种建立在P2P技术基础上的视频直播方案,它规定客户端之间使用一定协议来交换和共享直播数据,通过减少对服务器的数据请求,以降低服务端的I/O带宽等方面压力,从而削减服务器带宽成本,降低客户端卡播率。 一个直播功能通用的基础架构涉及三个部分,即音视频采集端、云服务端和音视频播放端。可以看到直播的流程可以分为如下几步: 音视频采集 —>音视频处理—>音视频编码和封装—>推流到服务器—>服务器流分发—>播放器流播放如下图,是一个APP直播功能的架构: 从上图中我们可以看到,每一个部分都有各自要处理的一些工作。 总体来说,视频直播类功能的整体流程包括以下内容: 音视频采集 音视频处理 音视频编码和封装 推流 流媒体服务器处理 拉流 音视频解码 音视频播放 二....
Android音视频开发总结之二Android平台采集、编码、解码
发表于2019-06-17|Android开发
一. 音视频采集流程串联整个音视频录制流程,完成音视频的采集、编码、封包成 mp4 输出。通过摄像头和麦克风获得实时的音视频数据; 播放流程: 获取流—>解码—>播放。 录制播放路程: 录制音频视频—>视频处理—>编码—>上传服务器->别人播放。 直播过程 : 录制音视频—>编码—>流媒体传输—>服务器—>流媒体传输到其他客户端—>解码—>播放。 视频采样数据 : 一般都是 YUV 或 RGB 格式 音频采样数据 :一般都是PCM格式 二.音频采集1.Android如何采集音频Android SDK对于音频采集提供两套API:MediaRecorder和AudioRecorder。 AudioRecordAudioRecord输出是PCM语音数据,得到原始的一帧帧PCM音频数据。如果保存成音频文件,是不能够被播放器播放的,所以必须先写代码实现数据编码以及压缩。一般直播技术采用的就是 AudioRecorder 采集音频数据。PCM(Pulse Code...
Android音视频开发总结之一理论基础
发表于2019-06-14|Android开发
一. 音频技术基础概念1. 声音的物理性质众所周知,声音是由物体振动而产生的。声音是一种压力波,当演奏乐器或者说话时,它们的振动都会引起空气有节奏的振动, 使周围的空气产生疏密变化,由此就产生了声波,这种现象会一直延续到振动消失为止。 声波具有三要素: 音调:也叫音频,频率越高,波长就会越短,而低频声响的波长则较长。所以这样的声音更容易绕过障碍物。能量衰减就越小,声音就会传播的越远; 音量:就是振动的幅度。用不同的力度敲打桌面,声音的大小势必发生变换。在生活中,我们用分贝描述声音的响度; 音色:在同样的频率和响度下,不同的物体发出的声音不一样。波形的形状决定了声音的音色。因为不同的介质所产生的波形不同,就会产生不一样的音色。 2....
1…91011…13
avatar
peng
过往不恋 未来不迎 当下不负
文章
126
标签
59
分类
24
Follow Me
公告
欢迎来到我的博客!
分类
  • Android开发45
  • CI/CD3
  • Docker容器2
  • Flutter开发8
  • Git1
  • GitHub1
  • Java后端开发2
  • Java语言6
  • JetpackCompose6
  • Kotlin语言5
标签
编程基础 数据库 SpringBoot Android自动化 数据结构 NodeJs 代码审查 wsl Koltin Retrofit Rss GetX Android自动化打包 Html Fiddler 依赖注入 加密解密 sqlite Shell ubuntu CSS Feed43 Android分区存储 Flutter状态管理 MacOs PHP 数据存储 Android文件下载 Vue MongoDB linux 自动化 算法 Redis Mysql JetpackCompose 设计模式 Java基础 Okhttp PyRSS2Gen
归档
  • 二月 2023 1
  • 十二月 2022 1
  • 十月 2022 2
  • 九月 2022 4
  • 八月 2022 4
  • 七月 2022 1
  • 六月 2022 3
  • 五月 2022 4
网站信息
文章数目 :
126
本站总字数 :
569.6k
最后更新时间 :
©2015 - 2025 By peng
千里之行 始于足下
搜索
数据加载中