Post List

751 words 1 mins.

# Blog 环境初始化问题 # 1.puppeteer 安装问题 出现了 The chromium binary is not available for arm64 这个错误 123456789#解决办法1.install homebrew2.install chromium by hand brew install --cask eloston-chromium3.install puppeteer and skip chromium installation PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=1 npm i puppeteer4.set env path...
525 words 1 mins.

# 实现正则表达式中的 . 和 * 的功能 . 匹配任意一个字符 * 匹配0个或多个*前面一个字符 动态规范的解法: 建立匹配的状态转移方程,设存在待匹配字符串 str 和模式字符串 pat, dp[i][j] 表示 截止到str[i-1] 位置的子串与截止到 pat[j-1] 位置的模式子串匹配的结果 # 边界条件 dp[0][j] 表示空字符串与模式子串匹配结果, dp[i][0] 表示字符子串与空模式子串匹配结果, dp[i][j] 表示空子串与空模式串匹配结果 dp[0][0] 一直为 true dp[i][0](i > 0) 一直为 false,...
194 words 1 mins.

# 1. 音频应用一般架构 由于音频应用一般需要在后台进行播放,所以音频应用架构一般选择 C/S 架构,将播放器放在 Server 端,下面是 Android 官方推荐的架构设计模式,它使用了 MediaBrowser 和 MediaBrowserService 实现对应的客户端和服务的,之间使用 MediaSession 进行交互 # 2.Server 端 服务端 Service 使用 MediaBrowserService,
613 words 1 mins.

Android Camera 架构 第一层: Java APP 第二层: Framework 封装 java 层的调用;实现 native 层的 CameraService 第三层: Camera HAL google 实现的 HIDL 标准接口,同时芯片厂商和 OEM 厂商基于 HIDL 接口实现自己的功能 第四层: Driver 相机驱动层 第五层: 各种电子、感光元件以及相机依赖的硬件 类: CameraServiceClient CameraDevice CameraProviderManager Camera3Device CameraHAL # 数据 #...
771 words 1 mins.

音视频同步问题解释之前先需要了解几个基本的音视频的概念: pts 渲染时间戳(Presentation TimeStamp) dts 解码时间戳 (Decode TimeStamp) fps 每秒显示的帧数(Frame Per Second):帧率 # 音频解码 音频解码是顺序解码,所以音频的 PTS 和 DTS 是一样的,当前解码的帧就是当前需要显示的帧。 # 视频解码 在视频解码中,由于采用了双向预测的帧间压缩技术,视频帧的解码顺序和视频帧的显示顺序就不一样了。 举个简单的例子: 有 1,2,3 这三张顺序显示的图片,第 1...
8.1k words 7 mins.

# Context.getSharedPreferences() 获取 SharedPreferences 对象 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566//android.app.Context.java@Override public SharedPreferences getSharedPreferences(String name, int mode) {...
5k words 5 mins.

接受 pcm 原始音频脉冲数据 # 简介 # Object SL 对象 代码中的 SLObjectItf 类型, 每个对象都有三种状态: Unrelalized (initial state) : 不可用状态 , 对接是活跃的,但是还没有分配资源,处于不可用状态,对象内接口的方法不能使用。 Realized :可用状态。对象资源已分配,可以使用对象 Suspended (optional state): 挂起状态,所需资源比可用状态要少,但是在挂起期间保留了状态信息。当资源不足时,系统可以选择将对象状态改成挂起状态或是不可用状态 # Interface...
3.6k words 3 mins.

在 Android Studio 中使用 Cmake 来构建 C,C++ 应用 今天尝试了学习使用 ffmpeg 来编写播放器,需要使用 C,C++ 来编写代码,所有学习一下 Cmake 的使用。 Cmake 是一个开源,跨平台的工具,被用来构建、测试、打包软件。Cmake 使用了简单的和平台、编译器无关的配置文件,来生成当前平台的软件、链接库。 # 用法 举个栗子: 我有一个 jni 接口,Java 层调用这个接口,返回一个字符串 hello Cmake 123456789101112libnative2/src/main/cpp/nativelib.cpp#include...
525 words 1 mins.

最近遇到了几道算法题,都涉及到了如何将一个整形的数字进行翻转,在这里记录一下数字翻转的代码的模板 1234567891011121314151617181920212223242526272829303132int reverseNum(int x) { //记录最后翻转后的值        int revert = 0; //记录从x中从右往左遍历得到的值        int b = 0; //当x的值为0时表明已经遍历完成        while(x >0){ //对当前x取余获取x的个位数            b = ...