NDK
文章平均质量分 70
涂文远
没有最好,只有更好,努力使自己变得更好!!!
展开
-
C语言基本类型、指针
stdafx.h#pragma once//#pragma once是一个比较常用的C/C++杂注,只要在头文件的最开始加入这条杂注,就能够保证头文件只被编译一次。#include "targetver.h"#include <stdio.h>//C 标准库#include <tchar.h>/*因为VS里的很多字符编码都是采用unicode来...原创 2017-07-31 16:30:09 · 558 阅读 · 0 评论 -
ffmpeg音频转原生的pcm及Native层回调播放
PCM(Pulse Code Modulation),脉冲编码调制。人耳听到的是模拟信号,PCM是把声音从模拟信号转化为数字信号的技术。原理是用一个固定的频率对模拟信号进行采样,采样后的信号在波形上看就像一串连续的幅值不一的脉冲(脉搏似的短暂起伏的电冲击),把这些脉冲的幅值按一定精度进行量化,这些量化后的数值被连续的输出、传输、处理或记录到存储介质中,所有这些组成了数字音频的产生过程(抽样、量化、...原创 2018-11-20 11:08:46 · 1129 阅读 · 0 评论 -
ffmpeg原生绘制视频
MainActivity<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" andro...原创 2018-11-19 18:09:01 · 489 阅读 · 0 评论 -
视频解码原理及ffmpeg MP4转YUV420P
1. 为什么要进行视频压缩? ● 未经压缩的数字视频的数据量巨大 ● 存储困难 ○ 一G只能存储几秒钟的未压缩数字视频。 ● 传输困难 ○ 1兆的带宽传输一秒的数字电视视频需要大约4分钟。为什么可以压缩 ● 去除冗余信息 ○ 空间冗余:图像相邻像素之间有较强的相关性 ○ 时间冗余:视频序列的相邻图像之间内容相似 ○ ...原创 2018-11-16 17:25:01 · 6601 阅读 · 2 评论 -
ffmpeg集成到androidStudio
1.把我们需要的so库及include copy进来 整个include包含文件夹及里面的内容修改项目的build.gradle文件defaultConfig { applicationId "com.ican.ffmpegdemo1" minSdkVersion 15 targetSdkVersion 28 versi...原创 2018-11-16 10:09:50 · 461 阅读 · 0 评论 -
云服务器编译ffmpeg
编译ffmpeg 需要用ndk 下载ndkhttps://developer.android.google.cn/ndk/downloads/older_releaseswget https://dl.google.com/android/repository/android-ndk-r14b-linux-x86_64.zip解压unzip android-ndk-r14b-...原创 2018-11-15 16:55:22 · 512 阅读 · 0 评论 -
Nginx流媒体服务器搭建
下载nginxhttp://nginx.org/en/download.htmlwget http://nginx.org/download/nginx-1.14.1.tar.gz下载opensslhttps://github.com/openssl/opensslwget https://github.com/openssl/openssl/archive/OpenSSL_1...原创 2018-11-14 17:24:15 · 241 阅读 · 0 评论 -
C++基础二
继承Plane.h//一个类中有纯虚函数,那么这个类就是抽象类 抽象类不能够实例化//一个类中只有纯函数,那么它是一个接口class Plane{public: Plane(); Plane(std::string name, int year); ~Plane(); virtual void fly(); virtual void land(); void原创 2017-10-23 15:25:21 · 173 阅读 · 0 评论 -
C++基础一
main.cpp#include #include using namespace std;void fun() { MyTeacher teacher; teacher.setAge(18); teacher.setName("小明"); cout << "teacher name : " << teacher.getName() << endl; cout << "原创 2017-10-20 16:36:20 · 171 阅读 · 0 评论 -
C++基础三
友元的两种表示形式#include #include using namespace std;//友元的两种表现形式 //1.友元函数//2. 友元类//作业//实现 类中的友元函数 friend void Boy::introduce();class Girl{public: //友元函数不能使用this friend void modify(Girl *gir原创 2017-10-30 11:02:42 · 269 阅读 · 0 评论 -
热修复
art_method.h/* * * Copyright (c) 2011 The Android Open Source Project * Copyright (c) 2015, alipay.com * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use thi原创 2017-10-12 10:11:29 · 397 阅读 · 0 评论 -
引入第三方so库
1.生成so库2.把生成的so库复制到项目libs目录文件夹3.修改项目build.gradle文件android { compileSdkVersion 26 buildToolsVersion "26.0.1" defaultConfig { applicationId "com.example.administrator.aslibtest原创 2017-10-12 09:04:52 · 2175 阅读 · 0 评论 -
JNI访问Java中各方法
#include #include "com_ican_twy_JniTest.h"#include #include //访问非静态方法JNIEXPORT void JNICALL Java_com_ican_twy_JniTest_accessMethod(JNIEnv * env, jobject jobj) { jclass jclaz = (*env)->GetObjec原创 2017-09-28 18:19:47 · 295 阅读 · 0 评论 -
JNI开发
JNIjava native interface使用环境:java api 不能满足我们程序的需要的时候。算法计算,图像渲染 效率要求非常高,当需要访问一些已有的本地库NDK工具的集合。帮助开放者快速开放C/C++ 动态库的工具。J 开发NI1.编写native方法public class JniMain { public static nativ原创 2017-09-27 17:31:14 · 201 阅读 · 0 评论 -
结构体_结构体指针,tyepdef_union_enum
#include "stdafx.h"#include #include #include struct Student{ char *name; int age;};//锁定结构体的变量的数量struct{ char name[20]; int age; int classId;};//结构体定义和初始化int main(){ int a = 10;原创 2017-08-07 15:08:02 · 440 阅读 · 0 评论 -
C语言文件操作 和 预编译命令
//read文件int main(){ char *path = "D:\\friends.txt"; FILE *fp = fopen(path, "r"); char buff[500]; while (fgets(buff,50,fp)){ printf("%s\n", buff); } fclose(fp); system("pause"); return 0;}原创 2017-08-10 16:36:50 · 514 阅读 · 0 评论 -
字符串使用、函数指针、内存分配
#include "stdafx.h"#include #include //函数指针int plus(int a, int b) { return a + b;}int minus(int a, int b) { return a - b;}int plus2(int *a, int *b) { return *a + *b;}int minus2(char原创 2017-08-02 18:12:51 · 296 阅读 · 0 评论 -
指针运算、二级指针、指针函数、函数指针
#define _CRT_SECURE_NO_WARNINGS#include "stdafx.h"#include #include //指针的定义,指针的运算int main(){ int a = 10; int *p; p = &a; *p = *p + 10; printf("p:%d,a:%d\n", *p, a);//20 20 int y = 1 + *p;原创 2017-08-02 11:31:14 · 358 阅读 · 0 评论 -
Android.mk生成so库(openwnn输入法为例)
openwnn输入法下载地址https://storage.googleapis.com/google-code-archive-source/v2/code.google.com/openwnn-legacy/source-archive.zip里面有个jni文件夹 里面都c/c++相关代码 我们需要把它编译成相应的so库其实很简单 只是我们很少在linux环境下自己去编译so库 ...原创 2019-06-14 16:41:49 · 1891 阅读 · 0 评论