- 博客(198)
- 资源 (12)
- 收藏
- 关注
转载 <HarmonyOS第一课>运行Hello World
在编辑器底部有一行工具栏,主要介绍常用信息栏,其中Run是项目运行时的信息栏,Problems是当前工程错误与提醒信息栏,Terminal是命令行终端,在这里执行命令行操作,PreviewerLog是预览器日志输出栏,Log是模拟器和真机运行时的日志输出栏。该标签标识ability图标,标签值为资源文件的索引。双击已安装的DevEco Studio快捷方式进入配置页面,IDE会进入配置向导,选择Agree,同意相应的条款,进入配置页。中间的是代码编辑区,你可以在这里修改你的代码,以及切换显示的文件。
2023-11-12 22:28:01
155
转载 应用程序入口—UIAbility的使用
UIAbility是一种包含用户界面的应用组件,主要用于和用户进行交互。UIAbility也是系统调度的单元,为应用提供窗口在其中绘制界面。每一个UIAbility实例,都对应于一个最近任务列表中的任务。一个应用可以有一个UIAbility,也可以有多个UIAbility,如下图所示。例如浏览器应用可以通过一个UIAbility结合多页面的形式让用户进行的搜索和浏览内容;
2023-11-12 22:21:27
259
转载 ArkTS开发实践
ArkTS通过struct声明组件名,并通过@Component和@Entry装饰器,来构成一个自定义组件。使用@Entry和@Component装饰的自定义组件作为页面的入口,会在页面加载时首先进行渲染。@Entry@Component例如ToDoList组件对应如下整个代办页面。图1ToDoList待办列表使用@Component装饰的自定义组件,如ToDoItem这个自定义组件则对应如下内容,作为页面的组成部分。@Component图2ToDoItem。
2023-11-12 22:11:57
255
转载 TypeScript快速入门
ArkTS是HarmonyOS优选的主力应用开发语言。它在TypeScript(简称TS)的基础上,匹配ArkUI框架,扩展了声明式UI、状态管理等相应的能力,让开发者以更简洁、更自然的方式开发跨端应用。JavaScript是一种属于网络的高级脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。
2023-11-12 22:07:18
65
原创 Android保存网页的方法
只是能完成任务,没有仔细打磨,很粗糙,不过还是那句话,丑但是够用,需要的话可以打磨一下,就没有那么丑了。(1)返回的结果是一个节点列表,不是数组,但能够像使用数组一样使用列表。注意:返回结果是一个有顺序的节点列表,可以通过索引来访问列表中的元素(索引从0开始)(2)如果查找失败,返回一个空的节点列表(.length==0)语法:document.getElementsByTagName('标签名');语法:document.querySelectorAll('选择器名');
2023-08-11 14:48:47
630
转载 【Mac使用笔记】之 raw.github.com访问不到
还原为官方提供的 homebrew-core.git 仓库地址。还原为官方提供的 brew.git 仓库地址。替换 / 还原 brew.git 仓库地址。系统偏好设置=>网络=>高级=>DNS。这里要添加两个dns。
2023-07-14 23:59:35
606
转载 android retrofit+rxjava如何处理响应码为非200的情况?
不废话,今天就是来聊聊http请求响应码的问题。大家都知道,android网络请求是通过httpurlconnection来实现的(httpclient已经在最新的Google源码中废弃),在发起网络请求以后,会有一个Response对象来给我们返回响应信息,而且只有在response code为200的时候才是响应成功,400是请求的url中包含非法字符次,404是请求的url不存在,500是服务器内部出错。我故意发送了一个错误的请求,结果只是打印了头部信息,并没有我们想要的response。
2023-04-13 14:56:45
816
转载 常用正则表达式
摘抄地址:常用正则表达式最强整理(速查手册,记得收藏)一、校验数字的表达式数字:n位的数字:至少n位的数字:m-n位的数字:零和非零开头的数字:非零开头的最多带两位小数的数字:带1-2位小数的正数或负数:正数、负数、和小数:有两位小数的正实数:有1~3位小数的正实数:非零的正整数:非零的负整数:非负整数:非正整数:非负浮点数:非正浮点数:正浮点数:负浮点数:浮点数:汉字:英文和数字:长度为3-20的所有字符:由26个英文字母组成的字符串:由26个大写英文字母组成的字符串:由2
2022-07-09 21:36:05
153
原创 Android Gradle语法
打印字符串:println("hello gradle")println "hello gradle"在项目根目录下,创建一个文件config.gradle;ext{ username="zp"}在项目级下的build.gradle中的头部引入:apply from:"config.gradle"buildscript { ...}...然后就可以在所有module中的build.gradle中使用:plugins { id ...
2021-12-14 09:37:56
2462
2
原创 Android NDK使用OpenCV
去OpenCV官网,下载Android的包。创建Android的C++工程:解压OpenCV后:复制libs:找到sdk->native->libs文件夹:复制头文件:找到sdk->native->jni文件夹:复制相应的包到工程中的cpp目录下:配置CMakeLists.txt:...include_directories(include)set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -L$...
2021-10-09 11:03:48
830
2
原创 YUV420抖音蓝线挑战代码(JAVA版)
static byte[] buffer_blueLine_Y = null; static byte[] buffer_blueLine_U = null; static byte[] buffer_blueLine_V = null; static byte[] buffer_result = null; static int blueHeight = 0; static int speed = 1; public static byte[]...
2021-09-30 15:51:12
172
原创 YUV420旋转执行代码(JAVA版)
旋转都是顺时针,镜像都是左右镜像;YUV420_ROTATE_90: private byte[] YUV420_ROTATE_90(byte[] buffer, int pixel_w, int pixel_h) { byte[] buffer_new = new byte[buffer.length]; int k = 0; //Y for (int i = 0; i < pixe
2021-09-29 16:20:50
272
原创 Nginx Rtmp 推流服务器配置
配置服务器:服务器版本:CentOS 7;1、下载解压nginx:打开:nginx: download;找到:nginx-1.16.1;把网址复制下来,到linux服务器;wget http://nginx.org/download/nginx-1.16.1.tar.gztar -zxvf nginx-1.16.1.tar.gz2、下载解压rtmp模块:打开github搜索:nginx-rtmp-module找到:GitHub - arut/nginx-rtmp-mo
2021-09-26 16:36:13
492
转载 ffmpeg # macOS 添加drawtext支持
brew install freetypebrew install fontconfigbrew install fribidi查看安装之后,可以用brew info查看安装信息。比如:localhost:FFmpeg Private$ brew info freetypefreetype: stable 2.10.0 (bottled)Software library to render fontshttps://www.freetype.org//usr/local/Cellar.
2021-09-14 19:06:19
378
原创 FFmpeg Save AVFrame to file
static void write_frame(const AVFrame *frame){ static int printf_flag = 0; if(!printf_flag){ printf_flag = 1; printf("frame widht=%d,frame height=%d\n",frame->width,frame->height); if(frame->format==AV_PIX_FMT_YU.
2021-09-14 11:21:11
337
原创 FFmpeg AVFilter滤镜简单应用
#include <jni.h>#include <string>#include <android/log.h>#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR,"xplay",__VA_ARGS__);#include "decode_audio.h"#include "play_pcm.h"#include "scaling_video.h"#include "resampling_.
2021-09-14 10:53:46
274
原创 FFmpeg转码实例(摘自FFmpeg示例)
const char *in_filename = "/sdcard/wang.mp4"; const char *out_filename = "/sdcard/wang.flv"; AVOutputFormat *ofmt = NULL; AVFormatContext *ifmt_ctx = NULL, *ofmt_ctx = NULL; AVPacket pkt; int ret, i; int stream_index = 0; int *.
2021-09-13 11:55:42
310
原创 FFmpeg常用命令
提取音视频数据保留封装格式ffmpeg -i test.mp4 -acodec copy -vn audio. mp4ffmpeg -i test.mp4 -vcodec copy -an video.mp4提取视频保留编码格式:ffmpeg -i test.mp4 -vcodec copy -an test_copy.h264强制格式:ffmpeg -i test.mp4 -vcodec libx264 -an test.h264提取音频保留编码格式:ffmpeg -i test
2021-08-31 18:39:31
139
转载 Mac Clion SDL2引入
下载SDL2,无论什么方式;找到SDL2的路径:复制这个路径:在CMakeLists中配置:set(SDL_DIR /Users/xxx/file/SDL2/SDL2-2.0.14/)include_directories(${SDL_DIR}/include/)link_directories(${SDL_DIR}/lib/)target_link_libraries(SDL_Test SDL2)在代码中引入SDL头文件,如果能引入就是成功了。...
2021-08-31 16:29:03
419
原创 FFMpeg打开文件报错:Invalida data found when processing input
我这边出现的错误是打开mp4文件能打开,aac文件也能打开,但是打开mp3文件的时候就开始报错:Invalida data found when processing input.在我测试的过程中发现,一些项目是可以打开的,另外一些项目打不开,同样的代码在一个工程打不开,复制到另外一个工程就能打开了,我百思不得其解。后来我觉得是不是我的ffmpeg编译有问题,所以就重新编译了一下,把该加的都加上,不该disable的全部去掉,然后重新导入到工程里,发现不能打开的工程能打开了,所以记一下。当有些文
2021-08-16 15:33:43
8628
原创 Android中C++代码调用Java代码
话不多说直接上代码JavaMethodCallBack.h#include <jni.h>class JavaMethodCallBack {public: ~JavaMethodCallBack(); void toast(jstring msg); JavaMethodCallBack(JavaVM *javaVM_, JNIEnv *env_, jobject *instance_);private: JavaVM *javaV
2021-08-11 12:19:41
479
转载 Android中Java调用C++代码的另一种写法
一般Android调用C++都是使用模板给出的代码:public class NativeMethod{ // Used to load the 'native-lib' library on application startup. static { System.loadLibrary("native-lib"); } public native String stringFromJNI();}然后cpp/native-lib.c
2021-08-11 12:00:16
274
转载 C 语言入门
C 简介C 语言是一种通用的高级语言,最初是由丹尼斯·里奇在贝尔实验室为开发 UNIX 操作系统而设计的。C 语言最开始是于 1972 年在 DEC PDP-11 计算机上被首次实现。在 1978 年,布莱恩·柯林汉(Brian Kernighan)和丹尼斯·里奇(Dennis Ritchie)制作了 C 的第一个公开可用的描述,现在被称为 K&R 标准。UNIX 操作系统,C编译器,和几乎所有的 UNIX 应用程序都是用 C 语言编写的。由于各种原因,C 语言现在已经成为一种广泛使用的
2021-08-09 17:59:43
169
原创 Android OpenSL播放PCM数据记录
赶紧记录一下不然又找不到了://1 创建引擎static SLObjectItf engineSL = NULL;SLEngineItf CreateSL() { SLresult re; SLEngineItf en; re = slCreateEngine(&engineSL, 0, 0, 0, 0, 0); if (re != SL_RESULT_SUCCESS) return NULL; re = (*engineSL)->Reali
2021-08-05 17:37:49
117
转载 FFmpeg Filter和SDL(Audio)
本文主要来自官方例子doc/examples/filtering_video.c。滤镜官方语法, 推荐参考《FFmpeg从入门到精通》。使用滤镜流程参考上一篇视频滤镜使用流程。注意以下一点:获取滤镜器的名称输入:avfilter_get_by_name("buffer") -> avfilter_get_by_name("abuffer")输出:avfilter_get_by_name("buffersink") -> avfilter_get_by_name...
2021-07-29 10:28:45
135
转载 FFmpeg Transcode(转码)
本文基于官方例子:doc/examples/transcoding.c。流程其中,AVFormatContext、AVPacket等重要的结构体请看:FFmpeg重要结构体(转自雷神)。与FFmpeg 简单实现转码差异性如下:1.增加Filter(滤镜)处理具体请看FFmpeg Filter和SDL(Video)和FFmpeg Filter和SDL(Audio)2.优化SwrContext(重采样)处理关键理解是这一段://1.swr_get_out_samp...
2021-07-29 10:28:28
733
5
转载 FFmpeg重要结构体(转自雷神)
结构体间联系a)解协议(http,rtsp,rtmp,mms)AVIOContext,URLProtocol,URLContext主要存储视音频使用的协议的类型以及状态。URLProtocol存储输入视音频使用的封装格式。每种协议都对应一个URLProtocol结构。(注意:FFMPEG中文件也被当做一种协议“file”)b)解封装(flv,avi,rmvb,mp4)AVFormatContext主要存储视音频封装格式中包含的信息;AVInputFormat存储输入视音频使用的封装格式。
2021-07-29 10:27:53
470
转载 FFmpeg Filter和SDL(Video)
本文主要来自官方例子doc/examples/filtering_video.c。滤镜官方语法, 推荐参考《FFmpeg从入门到精通》。使用滤镜流程其中,AVFormatContext、AVPacket等重要的结构体请看:FFmpeg重要结构体(转自雷神)。代码实现#include <stdint.h>#include <stdio.h>#include <stdlib.h>#define _XOPEN_SOURCE 600 /*...
2021-07-28 16:38:14
209
转载 FFmpeg Encode(编码)
本文来自官方例子doc/examples/encode_audio.c和doc/examples/encode_video.c。FFmpeg编码流程其中,AVFormatContext、AVPacket等重要的结构体请看:FFmpeg重要结构体(转自雷神)。官方例子【Audio】#include <stdint.h>#include <stdio.h>#include <stdlib.h>extern "C"{#include...
2021-07-28 15:56:43
565
转载 FFmpeg Decode(解码)
本文来自官方例子doc/examples/decode_audio.c和doc/examples/decode_video.c。FFmpeg解码流程其中,AVFormatContext、AVPacket等重要的结构体请看:FFmpeg重要结构体(转自雷神)。官方例子【Audio】#include <stdio.h>#include <stdlib.h>#include <string.h>extern "C"{#include <...
2021-07-28 15:43:22
691
转载 FFmpeg Remuxing(重新封装)
本文来自官方例子doc/examples/remuxing.c。FFmpeg解封装流程其中,AVFormatContext、AVPacket等重要的结构体请看:FFmpeg重要结构体(转自雷神)。重新封装的原理就是把输入文件解封装之后,再进行封装输出到新的文件中。官方例子#define __STDC_CONSTANT_MACROSextern "C" {#include <libavutil/timestamp.h>#include <l...
2021-07-28 15:15:51
312
转载 FFmpeg Muxing(封装)
本文主要参考雷神的最简单的基于FFmpeg的封装格式处理:视音频复用器(muxer)与官方例子doc/examples/muxing.c。FFmpeg解封装流程其中,AVFormatContext、AVPacket等重要的结构体请看:FFmpeg重要结构体(转自雷神)。以上步骤主要方法的简单说明。(1)avformat_alloc_output_context2构造输出的AVFormatContext。(2)avformat_new_stream将新的流添加到AVFor...
2021-07-28 15:07:45
763
转载 FFmpeg Demuxing(解封装)
FFmpeg解封装流程其中,AVFormatContext、AVPacket等重要的结构体请看:FFmpeg重要结构体(转自雷神)。(1)avformat_open_input创建并初始化AVFormatContext结构体,并把输入文件信息赋值到AVFormatContext中。(2)avformat_find_stream_info检索流信息,这个过程会检查输入流中信息是否存在异常,如:AVCodecContext中的extradata是否存在。(3)av_read_fra.
2021-07-28 15:04:42
206
转载 使用Clion阅读FFmpeg源码(支持跳转)
前言本方案仅仅适用于阅读FFmpeg,配置方式及其简单,能支持方法间的跳转,但由于配置原因部分无法识别或跳转,介意者勿入!!步骤1在Clion新建c++项目项目File->New Project->Create,如下图:步骤2将FFmpeg源码复制到根目录,如下图:步骤3编译源码生成动态库/静态库,目的需要头文件,然后把生成的头文件复制到项目中,如下:步骤4编写CMakeLists.txt文件,如下:cmake_minimum_required(VERSION 3.15
2021-07-28 14:58:04
653
4
转载 FFmpeg 简单实现转码
转码原理先看雷神的一张图:上图描述的很明白,上完图发现已经不需要语言描述了[Dog]。 但还是画个来说明一下这块之间的联系:其中,AVFormatContext、AVPacket等重要的结构体请看:FFmpeg重要结构体(转自雷神) 。代码实现#include <stdint.h>#include <stdio.h>extern "C" {#include <libavformat/avformat.h>#include <libavcode
2021-07-28 14:37:58
852
5
转载 FFMpeg编译并导入CLion(MacOS)
编译MacOS平台的FFmpeg动态库#!/bin/bashmake cleanfunction build_macosx() { ./configure \ --prefix=$PREFIX \ --disable-programs \ --target-os=darwin \ --disable-static \ --pkg-config=$(which pkg-config) \ --enable-shared || exit 0 ma
2021-07-28 14:21:28
325
转载 FFmpeg编译,实测有效
#!/bin/bashAPI=21NDK=/Users/Qincji/Desktop/develop/android/source/sdk/ndk/android-ndk-r21TOOLCHAIN=$NDK/toolchains/llvm/prebuilt/darwin-x86_64function build_android() { ./configure \ --prefix=$PREFIX \ --disable-opencl \ --disable-doc \
2021-07-28 11:34:38
113
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人