
多媒体
文章平均质量分 84
媒体盒子
专注于Android多媒体领域研发的技术流
展开
-
最近编译ffmpeg偶然发现没有生成ffplay
之前按照网上的步骤编译过好多次ffmpeg都没有发现有问题,但是最近机器重装后,装了了ubuntu系统,再按照自己的方法去编译ffmpeg发现没有生成ffplay文件(可执行),原因就在于电脑上没有安装sdl库。应为ffplay是依赖于sdl来进行图像渲染的。 下面告诉大家安装sdl库的方法。 sudo apt-get install libsdl1.2-dev希望对原创 2012-03-24 20:06:57 · 2894 阅读 · 2 评论 -
Android媒体扫描详细解析之一(MediaScanner & MediaProvider)
用过Android手机的同学都知道,每次开机的时候系统会先扫描sdcard,sdcard重新插拔(挂载)也会扫描一次sdcard。为什么要扫描sdcard,其实是为了给系统的其他应用提供便利,比如,Gallary、Music、VideoPlayer等应用,进入Gallary后会显示sdcard中的所有图片,如果进入Gallary后再去扫描,可想而知,你会厌恶这个应用,因为我们会觉得它反应太原创 2013-08-15 12:07:57 · 12931 阅读 · 2 评论 -
关于Android Menu横纵向显示的问题(经过验证)
android:targetSdkVersion="8" 横向android:targetSdkVersion="15" 纵向其他的可以自己试试,基本应该是跟android:targetSdkVersion的设置相关跟sdk的版本没有半毛钱的关系。原创 2013-11-20 09:29:57 · 2317 阅读 · 0 评论 -
2014年四月份最新Linphone-android代码下载
下载过linphone代码的都知道,必须使用git从linphone代码仓库clone代码,最近通过git下载最新的linphone-android代码时发现每次下载到一半就中断,然后不得不重新去git clone,但每次都会在中途断开,也就是通过此办法无法下载带最新的linphone-android完整代码了。经过本人摸索,现将以下办法共享给大家:首先通过git clone git://原创 2014-04-15 09:59:27 · 3040 阅读 · 1 评论 -
Android如何实现对系统自带对话框标题栏进行修改
先上一张图可以看到,对话框的标题颜色是蓝色的,下面还有一根线也是蓝色的,在某些情况下,我们想改变程序的主题风格,颜色必须做修改,但又懒得去定制Dialog,下面的方法就诞生了: public static final void dialogTitleLineColor(Dialog dialog, int color) { Context context = dialog.ge原创 2014-11-27 15:09:09 · 4546 阅读 · 0 评论 -
一个特殊需求的环形Buffer设计
最近有一个特别坑人的需求,厂家平板提供了一个回声消除接口,但每次只能读固定大小的字节数,但我们的编码器每次读取的自己数和这个大小不一样,于是就萌生了一种做一个buffer来临时存储声音数据,然后编码器再去读取,这样不管厂家每次读多少个自己,codec这边也可以控制读取的字节数了。首先映入眼帘的肯定首选环形buffer我先定义一个writeIndex 一个 readIndex,和一个当前bu原创 2015-04-10 11:07:29 · 1486 阅读 · 1 评论 -
如何从H264原始数据SPS里面得到视频的长宽
有这样一种需求,给你一个h264原始数据文件,让你直接播放出来,如何实现?思路是这样的,H264原始数据格式都是 0x00000001后面跟0x67 0x68 0x65 0x41这样的数据,解码需要一个完整的NAL数据单元,我们需要将每个0x00000001以及下一个0x00000001之前的数据读出来,交给解码器解码。读文件我就不啰嗦了,本文主要讲解如何从SPS获取视频长宽,SPS即0x原创 2015-06-16 14:34:55 · 5749 阅读 · 4 评论 -
Android如何不用setCustomView而实现ActionBar的自定义修改
做有ActionBar的项目时,比较懒,不想采用自定义的方式去自己写layout文件,然后分析源码,发现有些东西并不需要采用Custom的方式也能实现定制化。比如返回按钮的图标,ActionBar的背景,以及多个页面都需要修改,如果不用在每个页面都做代码修改。方法如下: @drawable/title_bg -20dp原创 2015-10-26 17:30:02 · 2440 阅读 · 0 评论 -
Bogus,bad length value xxx > IP Payload length
如果用Wireshark抓包看到有这种包,那么这个包肯定会被丢掉,表现在你的程序里面就是Server发包了,但是client没有收到,抓包看又有这个包问题产生原因,包标记的 长度大于实际传输过来的数据长度,这种问题产生的原因大部分是硬件问题,比如HUB或者Switch在包比较多的时候产生掉包,建议换个HUB或者SWITCH试试或许问题就没有了。原创 2016-09-20 08:21:49 · 8385 阅读 · 2 评论 -
Android媒体扫描详细解析之二(MediaScanner & MediaProvider)
上篇blog说到了经过对文件夹进行扫描如果后缀符合系统设定的一些格式,那么就会进行文件内容扫描下面我们紧接着STEP 14中的status_t StagefrightMediaScanner::processFile( const char *path, const char *mimeType, MediaScannerClient &client) {原创 2013-08-15 16:05:39 · 4254 阅读 · 0 评论 -
Android(2.3+)源码分析MediaPlayer之RTSP
在前面的博客中有简单介绍MediaPlayer,最近又开始研究这块东西,在此把阅读代码的理解记录下来方便以后快速查阅。播放普通文件传入的url是一个本地的绝对路径,但是流媒体的话传入的就是一个网络地址如以"http://“开头的流媒体和以"rtsp://"开头的流媒体协议。下面从源码中的Awesomeplayer.cpp finishSetDataSource_l函数入手(也相当与medi原创 2013-05-16 17:34:02 · 5727 阅读 · 6 评论 -
opencore 2way 引擎的应用
opencore 2way 主要是用于视频电话应用,它的实现主要是要完成三个部分:RIL,2way 的适配和OpenCore 2way。RIL模块负责与CP(基带处理器)进行数据交互。2way 的适配部分主要是向上层提供与2way的交互。而Phone应用和2way都会和RIL建立通信,Phone会向RIL发送一些AT指令,2way和RIL交互的是2way的PVCommsIONode,发送和接收原创 2012-04-16 15:11:13 · 1130 阅读 · 1 评论 -
美女找茬外挂程序
为什么突然想写个外挂呢,而且是美女找茬的。这个嘛,没办法,女朋友喜欢玩美女找茬。而且每次都得最后一名,令我看就伤心,故下定决心要写个美女找茬的外挂玩玩。 以下是我对程序的大致构想,各位大牛看了多提意见,以及我的办法是否可行,不可行的话能否提供好的办法,小弟在此谢谢了! 首先,美女找茬的游戏一打开就是两幅图片(左右各一个),并且大部分都是看起来一样的,只有几个位置是游原创 2012-04-17 16:50:36 · 2721 阅读 · 3 评论 -
android之媒体硬解OMX的实现
android的多媒体部分采用的编解码标准是OMX,当然这个标准是用于硬件编解码的,软件编解码在这里我就不说了。直接从stagefright的awesomeplayer开始说起吧,如果看过我前面博客的人知道stagefright使用的三个步骤:setdatasourepreparestart至于它们的作用在这里就不多说了。在prepare里面,当MediaExtractor原创 2012-05-17 22:33:45 · 18061 阅读 · 20 评论 -
关于VOIP电话中的SIP信令返回码的详细解释
1 临时应答1xx临时应答,也就是消息性质的应答,标志了对方服务器正在处理请求,并且还没有决定最后的应答。如果服务器处理请求需要花200ms以上才能产生终结应答的时候,它应当发送一个1xx应答。注意1xx应答并不是可靠传输的。他们不会导致客户端传送一个ACK应答。临时性质的(1xx)应答可以包含消息体,包含会话描述。1.1 100 Trying 这个应答表示下一个节点的服务器已转载 2012-08-06 20:01:46 · 5753 阅读 · 0 评论 -
移植soundtouch 到android 通过JNI来调用(一)
最近准备开发一款可以变声的录音机,于是在网上找了一下这方面的开源代码,发现soundtouch是一个不错的选择。首先是在官网下载源代码http://www.surina.net/soundtouch/sourcecode.html如果是在windows 下用的话可以直接下载相应的库来调用,linux的库暂时没有,只能自己来编了。接下来就是编译源码了。(我使用的是Ubun原创 2012-11-05 22:13:28 · 4847 阅读 · 0 评论 -
移植soundtouch到android 通过JNI来调用(二)
上一篇博客中写到了如何编译和安装soundtouch当安装soundtouch到你的ubuntu中后你可以通过运行soundstretch来体验一下soundtouch的用法,当然如果你运行soundstretch提示找不到lib的话你需要将/usr/local/lib 下面与soundtouch相关的lib放到/usr/lib下面至于soundstretch的用法,可以通过自原创 2012-11-19 21:25:22 · 5857 阅读 · 8 评论 -
android 布局如何支持多种不同屏幕尺寸
支持多种屏幕android运行在不同尺寸和像素(密度)的设备上,android系统给应用程序提供了一个相同的环境去适应不同的UI显示界面。同时系统提供API让应用程序去控制UI在不同尺寸和密度的屏幕上的显示效果,因为我们肯定不希望在手机和平板上显示一样的效果。尽管android系统会自动缩放你的应用程序以适应不同分辨率,但是你也必须针对不同尺寸和密度的屏幕尽量优化,只有这样才能原创 2013-01-28 10:12:11 · 6838 阅读 · 1 评论 -
有关H264视频卡的情况如何解决
1.首先确定采用的何种RTP荷载格式有三种:单NAL 单元包聚合包分片单元丢此不太清楚的可以看http://blog.youkuaiyun.com/luowenlong860502/article/details/7788617说白了就是一个RTP包里面携带了几个NALU(一个/N个/1/N个)一个NAL单元实际并不一定是一帧完整的数据,有时候(比如关键帧)可能一帧数据由二三十个N原创 2012-12-20 14:39:40 · 5671 阅读 · 0 评论 -
YUV格式详细解析
文详解YUV420数据格式YUV格式有两大类:planar和packed。对于planar的YUV格式,先连续存储所有像素点的Y,紧接着存储所有像素点的U,随后是所有像素点的V。对于packed的YUV格式,每个像素点的Y,U,V是连续交*存储的。 YUV,分为三个分量,“Y”表示明亮度(Luminance或Luma),也就是灰度值;而“U”和“V” 表示的则是转载 2013-03-08 17:38:01 · 1746 阅读 · 0 评论 -
swf 格式Flash 动画播放器在Android上的实现
首先明确一点,swf格式和其他的一些视频格式有很大的区别。它里面不仅有音频还有其他的各种元素(术语叫块类型)包括但不仅限于:矢量图、图片、文字、字体、片段动画、按钮、帧、动作、音频等等你需要将这些元素一一解析并渲染出来。这种格式是允许用户来互动的,你像大多数flash游戏,用户可以点击按钮产生不同的动画效果。这就说明swf格式里面还有代码来控制这些行为。下面来谈实现原创 2013-05-02 09:32:10 · 5858 阅读 · 5 评论 -
关于编译VLC-Android最新代码的正确姿势
可能大家看到这个帖子的时候已经经历了无数次的编译错误,那肯定是你编译的姿势不对,下面就是正确的姿势:1.编译环境必须用比较新的Ubuntu系统(其他linux平台也应该是需要比较新的),我采用的是ubuntu16.04 俗称麒麟 destop版(此版本的gettext版本是19.7这个比较重要,太低了会编译出错)2.严格按照https://wiki.videolan.org/Android原创 2017-01-10 09:06:15 · 821 阅读 · 2 评论