自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

蓝蓝的天

蓝蓝的天,白云朵朵。 White clouds in the blue sky.

  • 博客(355)
  • 资源 (22)
  • 收藏
  • 关注

原创 蓝牙headset和headfree简介

蓝牙耳机功能,也就是bluetooth headset /headfree profile,实现起来比想象的复杂。早期的蓝牙规范只定义了headset的profile, headset的实现原理是在hci层之上扩展一个接口,传输sco面向连接的同步音频数据包,限定音频流只能是单声道8k的话音级别的pcm。随着需求发展明显已经不能满足了,于是又补充了a2dp协议,a2dp协议在l2cap上层

2012-04-17 11:27:22 6911

原创 标准RTSP 消息的错误代码

标准RTSP消息的错误代码–在应答消息的第一行表示”100” ; Continue (all 100 range)“110”; Connect Timeout “200” ; OK ”201” ; Created ”250” ; Low on Storage Space ”300” ; Multiple Choices ”301” ; Moved Permane

2012-04-09 15:05:16 21614

原创 linux man查看函数帮助提示没有函数手册页条目的解决方法

例如,在ubuntu系统终端中输入man pthread_join,查看pthread_join函数的帮助,但提示:没有 pthread_join 的手册页条目要解决此问题,需要安装额外的帮助包文件manpages-posix-dev执行安装此包的命令,选择Y后,安装成功,再执行man命令查看帮助即可。sudo apt-get install manpages-po

2012-04-01 09:34:26 10430 1

原创 rtsp流媒体buffer填充的处理过程

NuPlayer流媒体播放器中从网络上取得的rtp包在解码和显示时所用buffer的填充和清空的机制,与stagefright框架播放本地视频时的处理流程类似。都是通过回调函数fillbuffer及emptybuffer来实现的。NuPlayer中的ACodec与Stagefright中的OMXCodec的作用相似。以下是rtsp流媒体中填充待解码的buffer,以及把解码后的buff

2012-03-23 16:53:32 12191 5

原创 ICS4.0.3创建NuPlayer的处理流程

ICS4.0.3中播放RTSP流媒体使用的播放器框架是NuPlayer,现在就分析创建NuPlayer的处理流程。1.创建Nulayer所做的处理在NuPlayerDriver::NuPlayerDriver()构造函数中:1.1 创建了ALooper对象mLooper,并调用了 mLooper->start函数,优先级为PRIORITY_AUDIO。    在ALooper:

2012-03-16 10:39:13 15546 12

原创 理解ICS Surface和SurfaceFlinger的处理流程

首先看下ISurfaceComposer接口ISurfaceComposer定义了基础接口,供客户端和Server端交互使用。ISurfaceComposer接口的派生类图示:------------------------------------------------------------------接口ISurfaceComposerClient->Bn

2012-03-16 10:30:44 4110

原创 设置RTSP, RTP和RTCP端口号

1.设置RTSP端口号设置RTSP端口号的处理位于ARTSPConnection.cpp文件中,首先从url中获取端口号,如果读取不到,则设置为默认端口554。代码处理如下:ARTSPConnection::ParseURL( const char *colonPos = strchr(host->c_str(), ':'); if (colonPos != NUL

2012-03-13 09:42:30 32970 1

原创 NuPlayer reset处理流程

1.NuPlayerDriver::reset() mPlayer->resetAsync();// 执行异步reset while (mResetInProgress) { // 等待reset完成,如果5秒未完成,则会出现ANR mCondition.wait(mLock); }2.NuPlayer::resetAsync()发送kWhatRe

2012-03-12 10:23:50 6661 1

原创 AudioPlayer的处理流程

首先需要注意的是,AudioPlayer处理的是已经解码后的数据1.创建AudioPlayer对象(1)在 AwesomePlayer::play_l()函数中创建了AudioPlayer对象,并且在AwesomePlayer.cpp文件中,只在此函数中创建过AudioPlayer对象 if (mAudioSource != NULL) { if (mAudioP

2012-03-05 13:16:12 11767 2

原创 视频码率,帧率和分辨率的联系与区别

视频码率,帧率和分辨率到底哪一个影响电影的清晰度码率:影响体积,与体积成正比:码率越大,体积越大;码率越小,体积越小。码率就是数据传输时单位时间传送的数据位数,一般我们用的单位是kbps即千位每秒。也就是取样率(并不等同与采样率,采样率的单位是Hz,表示每秒采样的次数),单位时间内取样率越大,精度就越高,处理出来的文件就越接近原始文件,但是文件体积与取样率是成正比的,所以几乎所有的编...

2012-03-01 09:23:50 142619 19

转载 UDP传输包大小

在进行UDP编程的时候,我们最容易想到的问题就是,一次发送多少bytes好?当然,这个没有唯一答案,相对于不同的系统,不同的要求,其得到的答案是不一样的,我这里仅对像ICQ一类的发送聊天消息的情况作分析,对于其他情况,你或许也能得到一点帮助:首先,我们知道,TCP/IP通常被认为是一个四层协议系统,包括链路层,网络层,运输层,应用层.UDP属于运输层,下面我们由下至上一步一步来看:

2012-02-29 15:52:15 3141

转载 CDMA、GPRS、EDGE、WIFI网速对比

核心提示:CDMA、GPRS、EDGE、WIFI网速对比,大家知道,上网包括从网络获取数据和向网络传输据这两个方向的速度,在很多时候这两个方向的带宽或者速度是不一样。接收速度和上传速度   大家知道,上网包括从网络获取数据和向网络传输据这两个方向的速度,在很多时候这两个方向的带宽或者速度是不一样。这在专业术语中称之为下行带宽 (速度)和上行带宽(速度),我们可以理解为接收速度和

2012-02-29 11:29:05 2926

原创 AMessage post方法的处理流程

Amessage post方法的处理流程1.AMessage::post(int64_t delayUs)  call gLooperRoster.postMessage(this, delayUs)  2.ALooperRoster::postMessage  call postMessage_l(msg, delayUs)  3.ALooperRoster::pos

2012-02-13 16:27:22 3222

原创 The calling sequence for ALooperRoster::deliverMessage

1. ALooper::start()  while runOnCallingThread is true  call ALooper::loop()2. ALooper::loop()   call gLooperRoster.deliverMessage(event.mMessage);      gLooperRoster is defined in ALoope

2012-02-13 15:34:34 2983

原创 屏幕分辨率一览

Sub-QCIF 128x96QCIF    176x144CIF     352x2884CIF    704x576QVGA 240×320HVGA 480*320VGA    640X480SVGA 800X600XGA    1024X768SXGA 1280X1024SXGA+ 1400X1050UXGA 1600X1200

2012-01-20 11:56:49 2783

原创 我的2011-移动开发的梦想

2011,我的移动开发梦想开局之年,终于成功的跨越了。回想这几年走过的开发之路,蜿蜒曲折。最初做对日外包,什么样工作的都做,金融证券,网站开发,各种嵌入式设备上的系统和应用开发,BREW手机软件,Android刚出世时,又做过一段Android调查及开发。从岗位上来说,测试,编码,设计又都涉猎过。经历虽然丰富了,但真正做久又精通的却没有,对于专业技术人员来说,并不是一件好事,没有积淀,很难精通

2011-12-30 15:32:27 6736 4

原创 RTSP连接服务器和从服务器接收数据的处理流程

RTSP连接服务器是否成功,以及是否从服务器接收到实际播放的数据,主要是判断两个linux select函数的执行结果。1.连接服务器的处理过程ARTSPConnection::onConnect(const sp &msg) int err = ::connect( mSocket, (const struct sockaddr *)&remote,

2011-12-27 17:50:23 4931 2

原创 音频seekTo的实现

1.音频的seekTo最终是在AudioPlayer类中实现的,AudioPlayer::seekTo函数status_t AudioPlayer::seekTo(int64_t time_us) { Mutex::Autolock autoLock(mLock); mSeeking = true;// 设置seek标志为true mReachedEOS = fals

2011-12-25 22:18:01 4231 2

原创 thumbnail的处理流程和读取缩略图thumbnail所在sample的index的方法

取得video thumbnail的处理流程如下图所示,取得image的thumbnail的处理流程类似,只是取得image thumbnail的函数变成了ThumbnailUtils.createImageThumbnail。Thumbnail的返回类型是Bitmap。寻找缩略图所在sample的index的方法在SampleTable::findThumbnailSample函数中

2011-12-20 16:54:08 5430

原创 Android CTS包下载地址

http://source.android.com/compatibility/downloads.html这里可以下载到各个版本的cts例如,针对2.3的CTS r10:Android 2.3 R10 Compatibility Test Suite (CTS)点击可以下载压缩包:android-cts-2.3_r10-linux_x86-arm.zip 目前最新的是4.0的

2011-12-20 14:22:56 10754

原创 MSM7225 600MHZ CPU和高通MSM 7201A 528MHz CPU的比较

我就以这两款CPU做个比较▼↓CPU比较:华为U8500高通MSM7225 600MHZ CPU和高通MSM 7201A 528MHz CPU  比较再分析CPU:7201是7200A去掉了H264的硬编码7225是7201继续去掉TV-OUT,USB-HOST等小玩意,大幅度削弱显示能力性能方面MSM7201强于msm7225  而采用了 MSM7200A 是

2011-12-15 10:28:08 4248 2

原创 Android ICS创建StagefrightPlayer播放器的过程

ICS相比GB,在创建播放器时有少许变化。MediaPlayer::setDataSource(const sp& player)函数只是简单的把函数名改为MediaPlayer::attachNewPlayer(const sp& player),内部处理基本没有变化。MediaPlayerService类去掉了MediaPlayerService::create的重载函数,并且在cre

2011-12-14 14:58:49 3867 2

原创 http streaming缓冲buffer更新进度的处理流程

对于http streaming,更新buffer进度的处理在AwesomePlayer::onBufferingUpdate()函数中,首先判断mCachedSource != NULL,即是http://流媒体的情况下,通过getBitrate(&bitrate)函数取得bitrate,然后计算出buffer的进度,通过notifyListener_l(MEDIA_BUFFERING_UPDA

2011-12-12 18:13:27 12746 3

原创 seekbar拖动时返回到拖动开始位置的原因

google源码中默认seek操作最小时间间隔为250ms,如果从开始seek到seek结束花费的时间小于等于250ms,则认为不是有效的seek操作,表现为seekbar上的进度块会回到拖动的开始位置继续播放。代码文件:packages/apps/Music/src/com/android/music/MediaPlaybackActivity.java private OnS

2011-12-06 09:22:27 5885 4

原创 ANR超时时间的定义

ANR超时时间在ActivityManagerService.java文件中进行了定义    1.broadcast超时时间为10秒 // How long we allow a receiver to run before giving up on it. static final int BROADCAST_TIMEOUT = 10*1000; 2.按键无响应的超时时间为5

2011-12-03 22:10:35 16277 2

原创 联通和电信的流媒体播放

1.联通网址:http://www.wo.com.cn(1)HTTP 格式手机电视/点播/免费点播/英伦平安一路行/大使致辞-英伦行/观看WIFI/3G 使用的都是 Stagefright 框架。(2)RTSP格式手机电视/直播/卫视频道/BTV 北京/北京卫视/观看WIFI使用Stagefright框架, 不能使用Opencore 。 3G

2011-12-02 15:52:34 2870

转载 GNU C库函数参考手册(2)

逍遥飞狐多媒体作坊 译上一页 下一页错误报告许多GNU C库中的函数都监测和报告错误的情况,而且有时候你的程序需要检查它们以得到错误的情形。比如说:你打开了一个输入文件,你必须检查这个文件是否正确的打开了,而且在你调用一个库函数出错的时候打印出错信息或采取其他的措施。这一章描述错误报告功能是怎么工作的。要使用这个功能的话,你的程序必须包含头文

2011-11-15 12:37:14 4486

转载 errno返回值的对应错误码

errno返回值的对应错误码   #ifndef _ASM_GENERIC_ERRNO_BASE_H  #define _ASM_GENERIC_ERRNO_BASE_H   #define EPERM            1      /* Operation not permitted */  #define ENOENT           2      /*

2011-11-15 12:35:51 3190

原创 [整理]Stagefright框架中视频播放流程

Stagefright框架中视频播放流程1.创建playerengine// 设置数据源,以及 audio sinkMediaPlayer::SetDataSource(PATH_TO_FILE)-> MediaPlayerService::create->MediaPlayerService::Client::setDataSource->GetPlayerTyp

2011-10-27 14:42:17 9505 4

转载 AEC、AGC、ANS是什么意思?

AGC是自动增益补偿功能(Automatic Gain Control),AGC可以自动调麦克风的收音量,使与会者收到一定的音量水平,不会因发言者与麦克风的距离改变时,声音有忽大忽小声的缺点。    ANS是背景噪音抑制功能(Automatic Noise Suppressi

2011-09-13 14:10:40 30293 1

原创 【整理】视频中IBP帧的介绍和判定方法

mpeg4视频中,I帧、p帧、B帧的判定mpeg4的每一帧开头是固定的:00 00 01 b6,那么我们如何判断当前帧属于什么帧呢?在接下来的2bit,将会告诉我们答案。注意:是2bit,不是byte,下面是各类型帧与2bit的对应关系:  00: I Frame

2011-08-26 16:10:16 8520

原创 MediaInfo用来分析视频和音频文件的编码和内容信息的超好用工具

MediaInfo简介MediaInfo 用来分析视频和音频文件的编码和内容信息。MediaInfo 是自由软件 (免费使用、免费获得源代码,许可协议:GNU GPL/LGPL)下载地址:windows版:http://mediainfo.source

2011-08-25 15:46:39 4662

原创 MediaRecorderClient决定使用stagefright还是opencore实现录音录像的代码实现

android录音或者录像时,决定是使用stagefright还是opencore框架的代码实现位于MediaRecorderClient类中,代码实现如下:MediaRecorderClient::MediaRecorderClient(const sp& service, pid_t pid){ LOGV("Client constructor"); mPid = pid;

2011-08-13 17:24:30 3960 2

原创 更新时间戳的命令

linux下更新文件时间戳的命令find {PWD} -name "*.*" |xargs touch *

2011-08-10 20:06:00 2822

原创 3gp或者mp4文件的duration长度为0,在SampleIterator::seekTo函数返回错误码-1007

如果3gp或者mp4文件的duration长度为0,则会在SampleIterator::seekTo函数返回错误码-1007,即ERROR_MALFORMED错误。if (mTable->mSampleToChunkOffset             || mTable->mChunkOffsetOffset             || mTable->mSampleSize

2011-08-06 14:41:40 3274

原创 MediaErrors.h定义了多媒体格式的错误码,如常见的-1007错误

MediaErrors.h定义了多媒体格式的错误码,如常见的-1007错误为ERROR_MALFORMED,表示文件格式错误。例如log输出:E/MediaPlayer( 649): error (1, -1007)其中-1007即是ERROR_MALFORMED。错误码的定义位于:frameworks/base/include/media/stagefright/MediaErr

2011-08-06 13:45:16 9641 1

转载 Google Android Hidden Secret Codes

NOTE: This article has been featured by many Google Android websites and magazines. AskVG.com was the first website posting these unique cod

2011-07-26 16:42:53 2193

转载 Android智能指针sp wp详解

来源:Linux社区  作者:李枝果研究Android的时候,经常会遇到sp、wp的东西,网上一搜,原来是android封装了c++中对象回收机制。说明:1. 如果一个类想使用智能指针,那么必须满足下面两个条件:    a. 该类是虚基类RefBase的子类或间接子类    b.

2011-07-19 00:21:04 2280 1

原创 Android API Levels

Android docs可以查到很多有用的内容,例如要查看API Levels,可以通过在Dev Guide选项卡中点击左侧Appendix 下的Android API Levels查看,会在右侧 显示API Levels的内容。Android 官方在

2011-07-16 20:00:49 1833

转载 关于Android的nodpi,xhdpi,hdpi,mdpi,ldpi

首先是几个基本概念:1.屏幕尺寸Screen size即显示屏幕的实际大小,按照屏幕的对角线进行测量。为简单起见,Android把所有的屏幕大小分为四种尺寸:小,普通,大,超大(分别对应:small, normal, large, and extra large).应用程序可以为

2011-07-07 09:30:45 1512

SGP.02_v3.2_updated.pdf

SGP.02 V3.2 更新版,比原来的SGP.02 V3.2版本多了一页内容。 Remote Provisioning Architecture for Embedded UICC Technical Specification Version 3.2 27 June 2017

2020-08-17

《音视频开发进阶指南:基于Android与iOS平台的实践》第4章AudioPlayer的Android Studio工程源码

《音视频开发进阶指南:基于Android与iOS平台的实践》第4张AudioPlayer的源码,由原作者的eclipse工程移植到Android Studio工程。在Android Studio 3.2,API 28编译通过。至于测试mp3文件,需要自己push到/sdcard/131.mp3

2019-04-26

安卓爱笑话ijoke

本软件是一款分类笑话阅读软件,提供七大类笑话,总数两万篇。 ------ 免费阅读,绝无广告 ------ 可随意调整字体大小和颜色,并能自定义背景图片,颜色,设置为最适合自己的画面,为我所悦。 还能通过短信,微博,邮件等分享给好友。 是您休闲怡情,解压除闷的必备软件。 快来看吧,七大类,两万条笑话总有你喜欢的。

2015-08-04

Google Play services com.google.android.gms-7.8.93_(2104405-448)

关于Google Play services的各个分支介绍(MX5一定要安装XXXXXX-448分支) 要想使用google play, google map等google应用,就必须安装Google Play Service,但Google Play Service有太多分支了,最近终于搞明白各个分支代表什么。 版本号最后三位(2104405-XYZ)分别表示Android版本,cpu的arm系列,屏幕密度(DPI)。 下面是具体分支介绍: Notes / What's New Uploader's notes: To figure out the right version of Google Play services for your Android device, go to Settings -> Apps -> Google Play services, and look at the last 3 numbers in the parentheses. You'll see something like -XYZ where: 1.第一位X * X defines Android version: 0 for Android =5.0 // 4和7表示Android5.0及以上 8 for Android TV // 8表示Android电视应用 2.第二位Y * Y defines CPU architecture: 1 for armeabi 3 for armeabi-v7a // 32位版本 4 for arm64-v8a // 64位v8版本,MX5必须是这个 7 for x86 // x86主要是对intel cpu来说的 3.第三位Z * Z defines DPI: 0 for universal 2 for 160 4 for 240 6 for 320 8 for 480 // MX5选这个就行了 Notes: It seems that -7YZ builds became -4YZ with Google Play services 6.5. If you were on -7YZ before, you should now install -4YZ. Looks like -8YZ builds are for Android TV. Examples: -014 for Android <5.0 armeabi CPU 240 DPI device -438 for Android 5.0+ armeabi-v7a CPU 480 DPI device -876 for Android TV x86 CPU 320 DPI device 国内用户可以直接从以下镜像网站下载最新到Google Play Service http://www.apkmirror.com/apk/google-inc/google-play-services/ 目前最新版本是Google Play services 7.8.93 MX5用户可以安装以下分支: Google Play services 7.8.93 (2104405-448) http://www.apkmirror.com/apk/google-inc/google-play-services/google-play-services-7-8-93-2104405-448-android-apk-download/ 另外,安装后好需要禁止系统自带【应用中心】自动安装更新,可以设置面流量更新,但不要设置“静默安装更新包”,否则新版本发布后会自动更新成应用中心的最新版本,而最新版本的后三位可能不是你想要的分支,这时候就会导致弹出提示架构不符等。

2015-07-28

安卓版爱笑话

安卓版爱笑话,目前最全的笑话,八大类,两万多篇。

2013-10-18

记账精灵家庭收支管理

本人开发的家庭财务管理软件。 适用于家庭,个人,小企业的财务支出和管理。 可以设置财务年度,分类统计,还可以按照年,月,周,日统计。

2012-09-09

android个税通2.0

软件介绍: 1.增加了按照新个税起征点3500元的个税计算方法,可以选择2000或3500元两个不同的起征点。 2.增加了界面切换时保存当前值的处理,再次进入此画面时还显示上次的值。 3.增加了“计算个税”等按钮与其他控件的距离,便于操作。 --------------------------------------------- 1. 本软件可以计算个人所得税,偶然所得税,单位支出总额 2. 根据税前收入计算税后收入,在税前月入输入框中点击,则按钮自动变为“计算税后”,此时为根据税前计算税后收入。 3. 根据税后收入反推税前收入,在税后月入输入框中点击,则按钮自动变为“反推税前”,此时为根据税后反推税前收入。 4. 输入税前收入时,缴费基数自动更新。 5. 输入社保缴费基数时,医疗缴费基数自动更新。 6. 医疗缴费基数可单独修改。 7. 个人所得税计算依据2008年3月发布的9级累进税率标准,起征点为2000元。

2011-07-06

android个税计算器

android个税计算器apk文件,适用于所有android机型。

2011-06-20

原创android界面效果全汇总

原创android界面效果全汇总,非常棒的界面特效大全。

2011-06-13

mp4info查看工具

查看mp4文件信息的工具,可以显示mp4文件的各个atom的组成,文件信息。

2011-06-07

Inside_the_Android_Application_Framework

Inside_the_Android_Application_Framework

2010-12-09

Filthy Rich Android Clients

介绍android UI的一个英文文档,包括阴影的设置等

2010-12-02

android 天气预报软件

简介:实现国内所有省会和大部分地级市,以及部分县区的天气查询,可以查询四天的天气情况。 1.用户可以设置每次默认查询的城市。 2.支持多中英文界面 3.支持字体大小,颜色的设置。 4.简单易用,查询天气方便快捷。

2010-11-19

android开发培训课件ppt

传智播客的android开发培训课件PPT文档。 全面介绍了android开发的基础知识,包括android的四大组件,SQLite等。

2010-11-14

Android_2.2_开发环境配置详解

Android_2.2_开发环境配置详解

2010-10-16

Android秒表计时器安装文件

简介:计时器小程序——秒表计时器,程序界面简洁,只有一个时间显示区域和两个图片按钮,一个按钮是开始/暂停,另一个按钮是停止。 1.功能: (1)根据用户设置.按0.1秒或1秒为最小单位计时,满60秒进为分钟,最大单位是分钟。 默认分钟为两位,超过两位后自动变为三位分钟。 (2).显示格式为 1.最小计时单位为0.1秒时,显示为:分钟:秒:0.1秒。例如:02:07:5 2.最小计时单位为1秒时,显示为:分钟:秒。例如:02:07 2.操作步骤 (1).按开始按钮,开始计时,此时开始按钮变为暂停按钮 (2).按暂停按钮,暂停计时,显示当前的计时时间 (3).按停止按钮,停止计时,暂停按钮恢复为开始按钮,时间显示为:00:00:00 (4)按menu键弹出menu菜单,第一项为设置计时单位,含有子菜单,可以设置计时单位为1秒或者为0.1秒。 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ameyume/archive/2010/08/08/5797161.aspx

2010-08-08

dell OptiPlex GX620 win2000系统的显卡驱动

dell OptiPlex GX620 win2000系统的显卡驱动

2008-08-25

dell OptiPlex GX620 win2000系统的声卡驱动

dell OptiPlex GX620 win2000系统的声卡驱动

2008-08-25

dell OptiPlex GX620 win2000系统的网卡驱动

dell OptiPlex GX620 win2000系统的网卡驱动

2008-08-25

xml指南

包括xml基础,xml高级部分,实例/测验,资源四个部分。<br>是学习xml入门的好文档,简单易学。

2008-05-26

Linux高级技巧集

Linux高级技巧集

2008-05-14

VB6.0做的学生管理系统

一个用VB6.0做的简单的学生管理系统,使用access数据库。

2008-05-14

空空如也

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

TA关注的人

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