android-移动多媒体编程

1.多媒体文件格式

文件格式定义了物理文件是如何组织并在文件系统上存储。一个普通的音频文件,它有两个主要

部分组成:元数据(标题,歌词)和音频数据。音频数据可能按帧顺序存储,也可能一整块存储。

文件格式的任务是定义元数据存储在文件的什么位置,音频数据存储在什么位置。

同理,知道了文件格式就可以从文件中读取任意想要的数据。

如图为MP3文件格式的结构。

2.编码/解码

编码/解码实际上就是数据的压缩和解压缩的过程。一般能将原始文件压缩至87%左右,专门的

压缩算法可以压缩至5%~60左右。

以编码方式为准,可以将多媒体文件分成无压缩,无损压缩和有损压缩3类。

   2.1 无压缩(WAV)

即对音频或视频数据不做任何处理,维持原来文件的大小。WAV格式就是一种无压缩的音频

文件格式,它将任何声音都进行编码,有声的或静音的都编码。同等长度的有声文件和静音

文件的大小是一样的

  2.2 无损压缩(APE,LA,FLAC,Apple Lossless,WMA Lossless)

在不损失质量的情况下缩小文件大小。就音频文件而言,可以压至原文件的50%~60%。

  2.3 有损压缩(MPEG audio ,Vorbis, WMA,ADX)

在一定程度上损失了质量,但是大幅度缩小文件的大小。就音频而言,可以压至5%~20%。

MIDI音频格式:是一个协议,不包含任何的音频数据,只包含用于产生特定声音的指令,指令

包括调用何种MIDI设备的声音,声音的强弱和持续时间。电脑将这些指令交给

声卡去合成相应的声音。因此文件非常小,几分钟的MIDI只有几KB。

常见格式: .ota/.imy/.mid/.xmf/.rtx/.rtttl/.mxmf

时间: 2024-08-29 06:43:29

android-移动多媒体编程的相关文章

Android的多媒体编程

多媒体编程 1.什么是多媒体? 多种媒体的综合. 图片.音乐.视频等: ##图片的常见格式: 1.bmp:以高质量保存所有类型的图片,并将其应用于计算机: 255 KB,255*340像素,24位深度 计算机表示图形的时候时候是使用像素点来表示的,每个像素点都有一个颜色,每个颜色都是使用6位16进制的数值来表示的,一个像素点使用24个bit表示. 图像大小的计算公式:分辨率的宽*高*位深度 + 头文件占用的数据大小=图形实际大小 ,颜色不会失真,图片的体积比较大. 2.jpg:36.4 KB,2

Android基础知识:Day09 多媒体编程

Day09 多媒体编程 一.对话框 1. 确定取消对话框 创建对话框构建器对象,类似工厂模式 AlertDialog.Builder builder = new Builder(this); 设置标题和正文 builder.setTitle("警告"); builder.setMessage("若练此功,必先自宫"); 设置确定和取消按钮 builder.setPositiveButton("现在自宫", new OnClickListener(

Android中多线程编程(四)AsyncTask类的详细解释(附源码)

Android中多线程编程中AsyncTask类的详细解释 1.Android单线程模型 2.耗时操作放在非主线程中执行 Android主线程和子线程之间的通信封装类:AsyncTask类 1.子线程中更新UI 2.封装.简化异步操作. 3.AsyncTask机制:底层是通过线程池来工作的,当一个线程没有执行完毕,后边的线程是无法执行的.必须等前边的线程执行完毕后,后边的线程才能执行. AsyncTask类使用注意事项: 1.在UI线程中创建AsyncTask的实例 2.必须在UI线程中调用As

Android 的网络编程

android的网络编程分为2种:基于socket的,和基于http协议的. 基于socket的用法 服务器端: 先启动一个服务器端的socket     ServerSocket svr = new ServerSocket(8989); 开始侦听请求 Socket s = svr.accept(); 取得输入和输出 DataInputStream dis = new DataInputStream(s.getInputStream()); DataOutputStream dos = new

Android开发经典书籍下载——《Android 4高级编程》《疯狂Android讲义》《Android应用开发详解(郭宏志)》《Android应用案例开发大全》《Android 3D游戏开发技术》

这是我收集的关于android开发方面的经典书籍,高清PDF电子版,可以在我的百度网盘免费下载,希望对需要的朋友有帮助. 目录: <Android 4高级编程>(附完整源代码) <疯狂Android讲义> <Android应用开发详解(郭宏志)> <Android应用案例开发大全> <Android 3D游戏开发技术> <Android内核剖析 柯元旦> <深入理解Android  卷1> <深入理解Android

超全Android JNI&NDK编程总结

由于网上关于JNI/NDK相关的知识点介绍的比较零散而且不具备参照性,所以写了这篇JNI/NDK学习笔记,便于作为随时查阅的工具类型的文章,本文主要的介绍了在平时项目中常用的命令.JNI数据类型.签名等,便于查阅相关资料.文末相关参考资料比较适合刚接触或者不熟悉Android NDK开发的朋友参阅. 常用命令 javac 编译java源文件生成.class文件 由于JNI对应的头文件由javah工具根据对应的.class文件生成,所以在进行JNI编程之前,写好Java代码后需要先编译,在使用ja

android 命令行编程

如果你想了解android上开发一个应用程序所需要的所有环节,在命令行上将这个过程操作一遍是最好的方法,下面你可以扔掉哪个慢腾腾的eclipse,然后建立如下一个auto.cmd文件,运行一下auto.cmd,你的电脑d:\work\njh1文件夹下就会产生一个SNjh.apk文件,该文件会自动安装到你手机上,并自动运行,这需要13个步骤,当然所用的环境为JDK1.7,ADT22.3,SDK API-17,d:盘建立文件夹work,当这些环境配好后就可以正常工作了,并且在系统环境中的path变量

多媒体编程——ios视频图像绘制工具类。

IOS上视频级的图像绘制 ios上的图像绘制常规的是 UIView的drawRect函数,但是这个函数是异步触发,并且由主线程执行.虽然可以通过一定技巧达到主动绘制的效果: 1.传递图像给UIView缓存着. 2.然后调用UIView的setNeedDisplay 改写重绘标志. (以上两步是讲图像丢给UIView,让它自己进行绘制,但是绘制的时机不可控,有时候我们需要它马上绘制,甚至有时候我们需要知道它什么时候绘制完成了,就需要下面两步) 3.在播放线程中调用UIView的 perfromOn

多媒体编程——ios摄像头图像抓取工具类

工具类提供预览图像画面,自动处理旋转,并且以主动方式抓取图像(这样帧率可以无限大) 系统的接口多是异步接收图像,像我这种强迫症怎么受得了,必须吧被动接收图像的方式改成主动抓取. 头文件 #import <Foundation/Foundation.h> #import <AVFoundation/AVFoundation.h> //这些比例都是4:3的比例. typedef enum TKVideoFrameSize { tkVideoFrame480x360 = 480 <

Android C++高级编程

简介 <Android C++高级编程--使用NDK>提供了Java原生接口(JNI)的概述.Bionic API.POSIX 线程和套接字.C++支持.原生图形和声音API以及NEON/SIMD优化.   本文将记录主要知识点. 详解 1.深入了解Android NDK Android NDK不是一个独有的工具:它是一个包含API.交叉编译器.链接程序.调试器.构建工具.文档和实例应用程序的综合工具集.组件如下:ARM.x86和MIPS交叉编译器构建系统JAVA原生接口头文件C库Math库P