自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

多媒体开发者

博学之,审问之,慎思之,明辨之,笃行之!

  • 博客(172)
  • 资源 (3)
  • 问答 (1)
  • 收藏
  • 关注

原创 JNI编程指南:JNI设计概述

本章是JNI设计思想的一个概述,在讲的过程中,如果有必要的话,还会对底层实现技术的原理做说明。本章也可以看作是JNIEnv指针、局部和全局引用、字段和方法ID等这些JNI主要技术的规范。有些地方我们可能还会提到一些技术是怎么样去实现的,但我们不会专注于具体的实现方式,主要还是讨论一些实现策略。

2024-05-27 10:03:31 917

原创 JNI编程指南:使用JNI时容易出错的地方

本章总结了JNI实际应用中容易出错的一些情况供JNI程序员参考。

2024-05-24 17:42:02 359

原创 JNI编程指南:使用己有的本地库

JNI的一个使用方式就是编写一些本地方法来使用己有的本地库。本章介绍了一种生成一个包含一系列本地函数的类库的经典的方式。本章首先用一对一映射这种(one-to-one mapping)最直接的方式来写封装类.接下来,我们会介绍一种叫做共享stubs(shared stubs)的技术来简化编写封装类的任务。然后,在本章的最后,我们会讨论怎么样使用peer classes来封装本地数据结构。本章介绍的方式都是通过本地方法直接使用一个本地库,这样的话,应用程序调用本地方法时会依赖于本地库。

2024-05-24 15:51:05 751

原创 JNI编程指南:多彩的JNI招数

我们已经讨论了JNI在写本地代码和向本地应用程序中集成JVM时的特征。本章接下来的部分分介绍其它的JNI特征。

2024-05-24 11:35:23 325

原创 JNI编程指南:调用接口

本章讲述如何把一个JVM嵌入到你的本地程序当中去。一个JVM可以看作就是一个本地库。本地程序可以链接这个库,然后通过“调用接口”(invocation interface)来加载JVM。实际上,JDK中标准的启动器也就是一段简单的链接了JVM的C代码。启动器解析命令、加载JVM、并通过“调用接口”(invocation interface)运行JAVA程序。

2024-05-23 21:55:25 615

原创 JNI编程指南:异常

我们通过一些例子来介绍一些JNI异常处理函数。

2024-05-21 16:46:15 803

原创 JNI编程指南:全局引用和本地引用

JNI提供了一些实例和数组类型(jobject、jclass、jstring、jarray等)作为不透明的引用供本地代码使用。本地代码永远不会直接操作引用指向的VM内部的数据内容。要进行这些操作,必须通过使用JNI操作一个不引用来间接操作数据内容。因为只操作引用,你不必担心特定JVM中对象的存储方式等信息。本章中,我们会详细地讨论这些问题。合理地管理JNI引用是写出高质量的代码的基础。

2024-05-20 19:24:05 789

原创 JNI编程指南:字段和方法

现在,你知道了如何通过JNI来访问JVM中的基本类型数据和字符串、数组这样的引用类型数据,下一步就是学习怎么样和JVM中任意对象的字段和方法进行交互。比如从本地代码中调用JAVA中的方法,也就是通常说的来自本地方法中的callbacks(回调)。我们从进行字段访问和方法回调时需要的JNI函数开始讲解。本章的稍后部分我们会讨论怎么样通过一些cache(缓存)技术来优化这些操作。在最后,我们还会讨论从本地代码中访问字段和回调方法时的效率问题。

2024-05-20 17:49:08 571

原创 JNI编程指南:基本类型、字符串、数组

对于小字符串来说,Get/SetStringRegion和Get/SetString-UTFRegion这两对函数是最佳选择,因为缓冲区可以被编译器提前分配,而且永远不会产生内存溢出的异常。当你需要处理一个字符串的一部分时,使用这对函数也是不错的,因为它们提供了一个开始索引和子字符串的长度值。另外,复制少量字符串的消耗是非常小的。在使用GetStringCritical时,必须非常小心。

2024-05-20 14:34:03 728

原创 JNI编程指南:简介

JNI是JAVA平台的一个重要特征,使用它我们可以重用以前用C/C++写的大量代码。本书既是一个编程指南也是一个JNI手册。第二章通过一个简单的例子介绍了JNI。它的对象是对JNI不熟悉的初学者。3~10章对JNI的特征进行了系统的介绍。我们会举大量的例子来说明JNI的各个特征,这些特征都是JNI中重要且常用的。11~13章是关于JNI的技术规范。可以把这两章当作一个手册。本书尽量去满足各类读者的需要。指南面向初学者,手册面向有经验的人和自己实现JNI规范的人。

2024-05-20 10:31:25 995

原创 Git详解之九:Git内部原理

现在你应该对 Git 可以作什么相当了解了,并且在一定程度上也知道了 Git 是如何实现的。本章覆盖了许多 plumbing 命令 ── 这些命令比较底层,且比你在本书其他部分学到的 porcelain 命令要来得简单。从底层了解 Git 的工作原理可以帮助你更好地理解为何 Git 实现了目前的这些功能,也使你能够针对你的工作流写出自己的工具和脚本。Git 作为一套 content-addressable 的文件系统,是一个非常强大的工具,而不仅仅只是一个 VCS 供人使用。

2024-05-16 21:30:44 642

原创 Git详解之七:自定义Git

你已经见识过绝大多数通过自定义 Git 客户端和服务端来来适应自己工作流程和项目内容的方式了。无论你创造出了什么样的工作流程,Git 都能用的顺手。

2024-05-15 11:31:20 910

原创 Git详解之六:Git工具

你已经看到了很多高级的工具,允许你更加精确地操控你的提交和暂存区。当你碰到问题时,你应该可以很容易找出是哪个分支什么时候由谁引入了它们。如果你想在项目中使用子项目,你也已经学会了一些方法来满足这些需求。到此,你应该能够完成日常里你需要用命令行在 Git 下做的大部分事情,并且感到比较顺手。

2024-05-13 21:43:10 933

原创 Git详解之五:分布式Git

为了便于项目中的所有开发者分享代码,我们准备好了一台服务器存放远程 Git 仓库。经过前面几章的学习,我们已经学会了一些基本的本地工作流程中所需用到的命令。接下来,我们要学习下如何利用 Git 来组织和完成分布式工作流程。特别是,当作为项目贡献者时,我们该怎么做才能方便维护者采纳更新;或者作为项目维护者时,又该怎样有效管理大量贡献者的提交。

2024-05-10 16:49:24 904

原创 Git详解之二:Git基础

有时候我们提交完了才发现漏掉了几个文件没有加,或者提交信息写错了。此命令将使用当前的暂存区域快照提交。如果刚才提交完没有作任何改动,直接运行此命令的话,相当于有机会重新编辑提交说明,但将要提交的文件快照和之前的一样。启动文本编辑器后,会看到上次提交时的说明,编辑它确认没问题后保存退出,就会使用新的提交说明覆盖刚才失误的提交。上面的三条命令最终只是产生一个提交,第二个提交命令修正了第一个的提交内容。

2024-05-04 16:04:53 864

原创 Git详解之一:Git起步

本章介绍开始使用 Git 前的相关知识。我们会先了解一些版本控制工具的历史背景,然后试着让 Git 在你的系统上跑起来,直到最后配置好,可以正常开始开发工作。读完本章,你就会明白为什么 Git 会如此流行,为什么你应该立即开始使用它。

2024-05-04 11:31:28 887

原创 Android的.dex、.odex与.oat文件区别

dex与.odex、.oat有什么联系呢?

2024-04-13 19:37:26 1552

原创 Android沙盒机制

Android Q文件存储机制修改成了沙盒模式,应用只能访问自己沙盒下的文件和公共媒体文件。

2024-04-13 19:11:36 1651

原创 UML类关系:依赖、关联、聚合、组合

依赖:“use a”,a不是成员变量,只能是局部变量,方法参数,静态方法调用。关联、聚合、组合:“has a”,a是成员变量。聚合和组合都是整体与部分的关系,关联则不是。聚合是分开也能存活,组合是同生共死。依赖:偷偷来一个,用完销毁(局部变量)。关联:偷偷来一个、偷偷new一个,用完存起来一直拥有(成员变量)。聚合:来一个。一直拥有(成员变量)。组合:new一个。一直拥有(成员变量)。

2024-04-13 15:30:39 1126

原创 Android进程类型及优先级(前台进程/可见进程/服务进程/缓存进程/空进程)

Android 进程优先级 :前台进程 > 可见进程 >服务进程 >缓存进程 > 空进程;Android 系统中会尽量保证优先级高的进程的存在时间尽可能长;如果资源不足 ( 这里的资源最主要的是内存 ) , 为了可以新建进程 , 以及重要进程的运行 , 系统会杀死一些低优先级进程 , 并回收该进程所占用的内存;如果出现内存不足的情况 , 会按照上述进程优先级顺序进行回收 , 从低到高进行。

2024-04-11 21:34:15 1026

原创 色域(BT2020/BT709/sRGB/DCI-P3/Rec.709/NTSC)

色域是对一种颜色进行编码的方法,也指一个技术系统能够产生的颜色的总和。在计算机图形处理中,色域是颜色的某个完全的子集。一般来说,高端投影仪和电视都会强调色域范围和对比度,而不是唯亮度标准论。自然界可见光谱的颜色构成了人眼所能看到的所有颜色的最大色域空间。其中设备色域空间大小与设备、介质、观察条件有关。设备的色域越大,显示出更多的色彩。色域是指某种设备所能表达的颜色数量所构成的范围区域,也就是各种屏幕显示设备、打印机或者印刷设备所能表现的颜色范围。

2024-04-05 18:07:50 9952

原创 颜色空间/模型(RGB, YUV,CMY/CMYK, HSI, HSV等)

颜色是通过眼、脑和我们的生活经验所产生的对光的视觉感受,我们肉眼所见到的光线,是由波长范围很窄的电磁波产生的,不同波长的电磁波表现为不同的颜色,对色彩的辨认是肉眼受到电磁波辐射能刺激后所引起的视觉神经感觉。

2024-04-05 17:01:32 1526

原创 Android UID相关知识

安装在设备中的每一个apk文件,Android给每个APK进程分配一个单独的用户空间,其manifest中的userid就是对应一个Linux用户都会被分配到一个属于自己的统一的Linux用户ID,并且为它创建一个沙箱,以防止影响其他应用程序(或者其他应用程序影响它)。用户ID 在应用程序安装到设备中时被分配,并且在这个设备中保持它的永久性。

2023-12-23 19:22:12 1939

原创 【多媒体文件格式】WV

另外WavPack引入了一种独特的“混合”模式,它使用一个附加的文件从而也具有了有损压缩的优点。与其它方法只生成一个文件不同,这种模式生成两个文件,其中一个是相对较小、可以单独使用的高质量有损压缩文件,另外一个是与有损文件一起使用实现无损数据恢复的“修正”文件。与其它无损压缩机制一样,这种算法的压缩比例也随源数据的不同而改变。对于古典音乐以及其它音域较宽的音乐,通常能得到更高的比例。WavPack允许用户压缩、恢复8、16、24、32位整型以及32位浮点表示的。音频压缩格式,其文件的后缀名为.wv。

2023-11-06 19:47:55 221

原创 【多媒体文件格式】WebM

Apple公司终于在macOS Big Sur 11.3的Safari中,加入了对Google WebM视频编解码器的支持。该视频文件格式应能提供高质量的。资助的项目,目标是构建一个。WebM项目是一个使用。音频编解码器,使用的。

2023-11-06 19:47:21 151

原创 【多媒体文件格式】VOB

DVD光盘中的视频就是VOB格式,这些视频文件往往以VIDEO_TS文件夹的形式存储在DVD光盘中,包含视频、音频、字幕等。和VOB文件配套的是IFO和BUP文件,IFO文件用于控制VOB文件的播放,所有的IFO文件都保存了一份副本,即同名的BUP文件。首先我们来简单了解一下VOB,VOB的英文全称是Video Object,它是DVD视频媒体使用的容器格式,VOB将数字视频、数字音频、字幕、DVD菜单和导航等多种内容复用在一个流格式中。除此之外,VOB格式中的文件可以被加密保护。

2023-11-06 19:46:48 242

原创 【多媒体文件格式】RM、RMVB、RV、RA

相较于一般使用了固定位元率的RealMedia视讯文件格式“.rm”,RMVB副档名多出的“VB”指的是可变动的位元率(Variable Bitrate)。反之,在画面变动大或是动态的影片片段,提高位元率,藉以在档案大小以及画质之间取得一个平衡。一般而言,在较低的平均位元率下,RMVB格式的影像画质会较原先固定位元率的RealMedia档案来得要好。它的文件使用 .ra 扩展名。RealMedia 是由 RealNetworks 开发的专有多媒体容器格式,使用 .rm 扩展名。,缩写RMVB,是由。

2023-11-06 19:46:09 819

原创 【多媒体文件格式】MTS、M2TS

MTS 文件中的音频流可以使用 PCM 音频进行压缩,PCM 音频是一种未压缩的线性编解码器或杜比 AC-3 编解码器。用于随机访问媒体(例如 DVD、蓝光光盘、硬盘驱动器、固态存储卡)的修改后的 MPEG-2 传输流规范是一种 BDAV 媒体容器,非正式地称为 M2TS。举例来说,M2TS文件名可以是“zzzzz.m2ts”,这里的“zzzzz”是文件的名字。另外有一种出现在AVCHD的设备上,附文件名为MTS的文件,实际内部格式与M2TS相同[.mts 是用于 AVCHD 视频的文件扩展名之一。

2023-11-06 19:45:25 470

原创 【多媒体文件格式】MP4、MPG、TS、3GP、3G2、3GPA

MPEG2-PS主要应用于存储的具有固定时长的节目,如DVD电影,而MPEG-TS则主要应用于实时传送的节目,比如实时广播的电视节目。MPEG-1 Part 2 视频不容易获得,并且此扩展名(MPG 文件格式)通常指向在 MPEG-1 和 MPEG-2 中定义的 MPEG 程序流,或在 MPEG-2 中定义的 MPEG 传输流.其他扩展名,如 .m2ts 也存在指定准确的容器,在本例中为 MPEG-2 TS,但这与 MPEG-1 媒体几乎没有相关性。是包含 MP3 音频的文件的最常见扩展名。

2023-11-06 19:44:49 1089

原创 【多媒体文件格式】MP1、MP2、MP3

MP2是MPEG-1 Layer II 的缩写,它是一种有损压缩的音频格式,文件扩展名为.mp2。MP2主要应用在标准化数字广播和数字电视广播(DAB,DMB,DVB)的数字音频和视频编码。MP1文件是使用MPEG-1 Audio Layer 1(簡稱MP1)標準壓縮的音頻文件。MPEG-1 Audio Layer 1是一種有損壓縮的音頻格式,是MPEG-1音頻標準第一層協議,主要用於數字盒式磁帶(DCC)。而对于大多数用户的听觉感受来说,MP3的音质与最初的不压缩音频相比没有明显的下降。

2023-11-06 19:44:15 1504

原创 【多媒体文件格式】MOV、M4V

MOV文件是最常见的视频文件之一,它以QuickTime文件格式(QTFF)保存,这是一种由Apple公司的多媒体容器格式,用于保存音频和视频多媒体信息。由于支持高质量视频,视频编辑器通常将视频保存为MOV文件。若要播放受到DRM保护的M4V,必须使用被已购买该影片的苹果账户授权的设备;但在不受DRM保护的情况下,支持MP4格式的播放器都可以正常播放M4V。格式十分相似,但在M4V格式中可能会使用苹果公司的FairPlay。来保护影片文件的版权,除此之外与MP4格式并无其它区别。

2023-11-06 19:43:20 635

原创 【多媒体文件格式】MKV、MKA

MKV(Matroska Video File)是一种Matroska媒体格式的多媒体封装格式(Multimedia Container Format,简称MCF)。但Matroska媒体格式除了MKV外,常见的还有MKA (Matroska Audio File)单一音频文件,可以有多条及多种类型的音轨,MKS (Matroska Subtitles)字幕文件,Matroska来自于俄语,影射俄罗斯娃娃,就是下面这个啦,表示一层包着另外一层。MKA 允许将音轨分成章节,还支持嵌入 SRT 格式的歌词。

2023-11-06 19:42:40 849

原创 【多媒体文件格式】MIDI、SMF、IMY、XMF、MMF、SMAF、RTTTL

它是一种用于捆绑音乐为向导的树结构数字容器格式,由单个或多个文件组成,如标准MIDI文件、WAV文件、可下载声音(DLS)乐器文件或数字音频文件等。SMF格式采用了一种简单但有效的方式来存储MIDI音乐数据,将每个音符的信息按照时间顺序排列,并以事件流(Event Stream)的形式保存。SMF格式(Standard MIDI File)是一种标准的MIDI文件格式,用于保存MIDI音乐数据,可以在不同的MIDI设备和软件之间共享和使用。现在电脑的声卡都是与MIDI兼容的,并能逼真地模拟乐器的声音。

2023-11-06 19:41:59 1396

原创 【多媒体文件格式】M4A、M4R、AIFF、AIFC、ALAC

M4A 通常被认为是比 MP3 更高级的格式,而 MP3 通常不是为音频而设计的。ALAC与MP3的主要区别在于编码过程中,MP3会取消小部分高频及低频部分的音频数据,而ALAC则会如实记录,不会删除音频中任何细节数据。由于资料无损,ALAC音频文件大小会比MP3大,通常每片音乐CD(约70至80分钟)经ALAC编码后,音频文件大小约300MB。M4R文件是iPhone使用的铃声文件,它使用MPEG-4音频格式存储经过AAC编码压缩的音频。.aif**,压缩过的AIFF文件的扩展名应是**.aifc**。

2023-11-04 19:18:46 1393

原创 【多媒体文件格式】M3U8

M3U8文件是指UTF-8编码格式的M3U文件(M3U使用Latin-1字符集编码)。M3U文件是一个记录索引的纯文本文件,打开它时播放软件并不是播放它,而是根据它的索引找到对应的音视频文件的网络地址进行在线播放。m3u8基本上可以认为就是.m3u格式文件,区别在于,m3u8文件使用UTF-8字符编码。

2023-11-04 19:18:09 207

原创 【多媒体文件格式】JPG、JPEG、JFIF

ormat,JPEG文件交换格式,联合图像专家小组文件交换格式)详细说明如何从一个JPEG流,产出一个适合于电脑存储和传输(像是在。在普遍的用法,当有人称呼一个"JPEG文件",一般而言他是意指一个JFIF文件,或有时候是一个。JPEG格式的资料也能受嵌进其他类型的文件格式中,像是。,即在压缩过程中图像的质量会遭受到可见的破坏,有一种以JPEG为基础的标准。使用JPEG格式压缩的图片文件一般也称为JPEG Files,最普遍使用的。是采用无损的压缩方式,但Lossless JPEG并没有受到广泛的支持。

2023-11-04 19:17:36 936

原创 【多媒体文件格式】FLV、F4V

FLV(Flash Video)是现在非常流行的流媒体格式,由于其视频文件体积轻巧、封装播放简单等特点,使其很适合在网络上进行应用,目前主流的视频网站无一例外地使用了FLV格式。另外由于当前浏览器与Flash Player紧密的结合,使得网页播放FLV视频轻而易举,也是FLV流行的原因之一。F4V(Flash MP4 视频文件)是以 .f4v 扩展名保存的视频文件。FLV在H.264的视频规格或是AAC的音源规格都达到功能极限,为了克服这个格式上的限制,F4V于是诞生。F4V支持的视频类型为。

2023-11-04 19:17:01 241

原创 【多媒体文件格式】FLAC、OGG、OGV、OGA

Xiph.Org基金会决定创造一些新的扩展名和媒体格式来描述不同类型的内容, 像是只包含音效所用的.oga、 包含或不含声音的视频(涵盖Theora)所用的.ogv, 和可以包含任何比特流的.ogx。虽然Ogg作为一个通用的容器框架,可以容纳用几乎任何编解码器编码的多路音频和视频轨道,但它的设计主要是为了与免费/开放的Xiph。,非常适合用于低延迟语音通话的编码,像是网络上的即时声音流、即时同步声音旁白等等,此外Opus也可以透过降低编码比特率,达成更低的算法延迟,最低可以到5 ms。

2023-11-04 19:16:28 1340

原创 【多媒体文件格式】DTS、DTSHD

在基于Microsoft Windows的系统上运行的计算机的用户可以安装DTS-HD Master Audio的套件软件创建HD DVD和蓝光光盘生产项目和相关的DTSHD文件。DTS:XDTS:X是DTS的新一代基于对象的多维音频技术。一个DTS-HD Master音频文件所使用的DTS-HD Master音频Suite软件作为该应用程序的项目输出文件的其他数据,而这些文件都存储在DTS-HD格式。要实现DTS文件的音效输出,需在硬件上及软件上符合DTS的规格,多数会在产品上标示DTS的商标。

2023-11-04 19:15:50 3120

原创 【多媒体文件格式】DCF

(JEIDA)规格中的 Design Rule of Camera File system的简称。.dcf文件是将媒体对象打包成OMA DRM V1.0中规定的DCF(DRM Contect Format)格式,使用。一些手机用于保存受保护的铃声,图片,视频和其他媒体剪辑;可以通过获得权利对象(Right Object)或CEK(Content。数码照相机的统一记录格式。是为了方便相关装置间使用画像文件而制定的。文件,但权限对象(允许回放加密的数据)包含在单独的文件中。)来解密.dcf文件,播放媒体文件。

2023-11-04 19:15:16 195

Open Firmware Recommended Practice: Interrupt Mapping Version 0.9

Open Firmware Recommended Practice: Interrupt Mapping Version 0.9

2016-06-28

C#使用GDI+绘图

C#使用GDI+绘图,C#高级编程,包含代码

2013-09-23

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除