media
文章平均质量分 87
蓝白天际线
本人从事linux的嵌入式开发.
展开
-
Android播放器框架分析 1
Author:AyaDate:2011-08-03the1soft Java层 要开启一个播放器进行播放, 需要以下几行代码:Java代码MediaPlayer mp = new MediaPlayer(); mp.setDisplay (...); /// 设置播放器Suface mp.setDataSource(PATH_TO_FILE); //转载 2017-11-22 18:42:14 · 640 阅读 · 0 评论 -
音乐播放器之--错误状态下调用导致的异常
MediaPlayer必须在合适的状态下调用合适的方法,否则会出现异常,下面列出常见错误信息和说明:1、E/MediaPlayer(11310): stop called in state 1调用 stop()之前,MediaPlayer的状态不在【Started, Paused, Prepared or PlaybackCompleted state】范围内。只有在这个范围内的状态才可以调用st...转载 2018-04-02 14:00:28 · 2021 阅读 · 0 评论 -
Android 多媒体MediaPlayer使用详解
现在的手机功能越来越丰富了,遥想10年前,MP3,MP4,MP5,还是很流行的,博主当时读高中时很想拥有一台,可以听音乐和看电影。可是条件有限,学校也禁止此东西,所以只能偷偷的玩。而现在我们的手机也很早以前就支持了这些功能,而且界面和功能也远远超过了MP4。好吧,说多了,今天本文介绍的是Andriod系统自带的Mediaplayer,和VideoView实现简单的音乐和视频的播放,至于想做出如酷...转载 2018-04-02 14:14:02 · 513 阅读 · 0 评论 -
Android MediaPlayer和VideoView的使用
MediaPlayerMediaPlayer类是Androd多媒体框架中的一个重要组件,通过该类,我们可以以最小的步骤来获取,解码和播放音视频。它支持三种不同的媒体来源:本地资源内部URI,比如你可以通过ContentResolver来获取外部URL(流)对于Android支持的媒体格式列表,可见:Supported Media Formats文档在播放网络上的视频流时,Android原生的Med...转载 2018-04-04 14:23:48 · 413 阅读 · 0 评论 -
VideoView源码分析
VideoView源码分析VideoView基于Android4.4源码进行分析简介/** * Displays a video file. The VideoView class * can load images from various sources (such as resources or content * providers), takes care of computin...转载 2018-04-04 16:45:43 · 1290 阅读 · 0 评论 -
Android视频播放之VideoView
1、VideoView类介绍 Android的VideoView组件可以从不同的来源(例如资源文件或内容提供器)读取图像,计算和维护视频的画面尺寸以使其适用于任何布局管理器,并提供一些诸如缩放、着色之类的显示选项,包含在widget下面:android.widget.VideoView。Android中视屏播放框架如下图: 从图中可以看出,VideoView组件进行视频播放的过程可以分为三步:...转载 2018-04-04 16:47:59 · 1344 阅读 · 0 评论 -
RTP 的时间戳
RTP 的时间戳. 首先,了解几个基本概念: 时间戳单位:时间戳计算的单位不是秒之类的单位,而是由采样频率所代替的单位,这样做的目的就是 为了是时间戳单位更为精准。比如说一个音频的采样频率为8000Hz,那么我们可以把时间戳单位设为1 / 8000。 时间戳增量:相邻两个RTP包之间的时间差(以时间 戳单位为基准)。 采样频率: 每秒钟抽取样本的次数,例如音频的采样率一般...转载 2018-04-13 09:57:24 · 668 阅读 · 0 评论 -
rtsp时间戳计算方法
Rtsp的拖放和快放、慢放都是先pause,再play,根据play消息包中的range和scale参数来实现。对应到live555中,pause时调用sendPauseCommand函数。Play时调用unsigned sendPlayCommand(MediaSubsession& subsession, responseHandler* responseHandler,double ...转载 2018-04-13 17:29:23 · 3587 阅读 · 0 评论 -
Android:RTSP流媒体花屏
记录和同事分析的一个流媒体花屏问题总的来说,播放流媒体的过程中花屏大多说是由于解码前后存在丢帧,存在丢帧的原因就可能有很多了1:文件本身就是不完整的,存在很多丢帧或者错误帧的情况;2:直播流媒体,第一帧不是I帧,会扔掉所有开头的这些帧,直到等到第一个I帧过来3:流媒体通过RTP等封装格式在网络上传输过程中存在丢包,或者包延迟时间太长4:解码器解码能力限制或者解码器的其他因素导致的丢帧下面就简要分析...转载 2018-06-05 14:51:16 · 2005 阅读 · 0 评论 -
RTP协议分析
RTP协议分析第1章. RTP概述1.1. RTP是什么RTP全名是Real-time Transport Protocol(实时传输协议)。它是IETF提出的一个标准,对应的RFC文档为RFC3550(RFC1889为其过期版本)。RFC3550不仅定义了RTP,而且定义了配套的相关协议RTCP(Real-time Transport Control Protocol,即实时传输控制协...转载 2018-06-13 10:16:21 · 47145 阅读 · 5 评论 -
rtsp流媒体buffer显示的处理过程
NuPlayer流媒体播放器中从网络上取得的rtp包在解码和显示时所用buffer的填充和清空的机制,与stagefright框架播放本地视频时的处理流程类似。都是通过回调函数fillbuffer及emptybuffer来实现的。NuPlayer中的ACodec与Stagefright中的OMXCodec的作用相似。以下是rtsp流媒体中填充待解码的buffer,以及把解码后的buffer送给显示...转载 2018-06-14 11:47:37 · 695 阅读 · 0 评论 -
分享一个分析的rtsp流媒体的问题
原文地址:分享一个分析的rtsp流媒体的问题作者:LLYF前面几篇博文都是关于http协议的流媒体,这篇博客分享一篇分析的rtsp协议的流媒体的问题。问题北京:播放一个内网服务器上面的音频文件,拖动进度条,毕现的会有so crash的现象查看log,crash的地方是:CHECK_LE(offset + payloadLength, buffer->size());这个宏没有满足导致。在分析...转载 2018-07-10 15:39:54 · 1106 阅读 · 0 评论 -
android nuplayer reset处理流程
转载1.NuPlayerDriver::reset() [cpp] view plaincopymPlayer->resetAsync();// 执行异步reset while (mResetInProgress) { // 等待reset完成,如果5秒未完成,则会出现ANR mCondition.wait(mLock); } 2.NuPlayer::resetAsync...转载 2018-07-12 22:20:11 · 645 阅读 · 0 评论 -
Android进阶——深入浅出Handler(一)
在学习Handler之前,首先要学习一些基本概念,这将对之后的学习有所帮助。主线程:Main Thread,又叫UI线程(UI Thread)。Android应用执行的线程,所以叫主线程。负责分发事件到合适的UI窗口,也是应用和Android UI套件交互的线程。所以叫UI线程。ANR:应用无响应(application not responding)。如果UI线程阻塞超过几秒(现在一般是5秒),转载 2018-01-18 17:26:26 · 417 阅读 · 1 评论 -
Android开发中Handler的经典总结
当应用程序启动时,Android首先会开启一个主线程(也就是UI线程),主线程为管理界面中的UI控件,进行事件分发。一、Handler的定义:主要接受子线程发送的数据, 并用此数据配合主线程更新UI。解释:当应用程序启动时,Android首先会开启一个主线程 (也就是UI线程) , 主线程为管理界面中的UI控件, 进行事件分发, 比如说, 你要是点击一个 Button ,Android会分发事件到转载 2018-01-18 17:23:46 · 167 阅读 · 0 评论 -
MediaCodec与ACodec通知分析
ACodec与MediaCodec的通知。OMX的组件解码之后,当ACodec的onOMXFillBufferDone会被回调,去取得解码后的数据。ACodec在onOMXFillBufferDone调用后会调用notify通知MediaCodec(notify->setInt32("what", CodecBase::kWhatDrainThisBuffer);//发给MediaCodec的转载 2017-12-29 15:53:28 · 3353 阅读 · 0 评论 -
Android MediaPlayer和VideoView的使用
MediaPlayerMediaPlayer类是Androd多媒体框架中的一个重要组件,通过该类,我们可以以最小的步骤来获取,解码和播放音视频。它支持三种不同的媒体来源:本地资源内部URI,比如你可以通过ContentResolver来获取外部URL(流)对于Android支持的媒体格式列表,可见:Supported Media Formats文档在播放网络上的视频转载 2017-12-20 18:40:59 · 4545 阅读 · 0 评论 -
android MediaPlayer播放音视频流程
在播放一个本地音视频文件或网络传输的音视频流时,apk中一般会调用类似如下代码(本文以播放一个网络视频流为例进行分析):MediaPlayer mp = new MediaPlayer();(1) //创建一个播放器mp.setDataSource("rtsp://10.0.149.217:554/stream1"); (2)//参数指定路径或url mp.转载 2017-12-21 15:44:57 · 1546 阅读 · 0 评论 -
MediaPlayer本地播放流程解析(1)
应用场景:[java] view plain copyMediaPlayer mediaPlayer = new MediaPlayer(); mediaPlayer.setOnCompletionListener(new OnCompletionListener() { @Override publ转载 2017-12-21 15:49:22 · 563 阅读 · 0 评论 -
MediaPlayer本地播放流程解析(2)
上一篇MediaPlayer本地播放流程解析(一)讲了MediaPlayer的setDataSource流程,本篇将接着讲MediaPlayer的prepare流程。Prepare前面的流程一直到AwesomePlayer,和setDataSource都基本上一样,这里直接略掉。下面将从AwesomePlayer开始。[cpp] view plain copy转载 2017-12-21 15:51:12 · 503 阅读 · 0 评论 -
MediaPlayer本地播放流程解析(3)
这一篇文章接着之前的prepare,讲play的流程前面的流程省略,直接从AwesomePlayer的Play()开始讲。[cpp] view plain copystatus_t AwesomePlayer::play() { …… return play_l(); } s转载 2017-12-21 15:53:04 · 431 阅读 · 0 评论 -
NuPlayer的处理流程
http://wangshh03.blog.163.com/blog/static/49103415201282611152692/ICS4.0.3中播放RTSP流媒体使用的播放器框架是NuPlayer,现在就分析创建NuPlayer的处理流程。1.创建Nulayer所做的处理在NuPlayerDriver::NuPlayerDriver()构造函数中:转载 2017-12-22 11:57:49 · 832 阅读 · 0 评论 -
Android中基于NuPlayer的RTSP框架学习
一、整体框架图Android中基于NuPlayer的RTSP框架如下图所示(该图来自网上)。整个图主要分为两个部分,一部分是NuPlayer的架构,另一部分则是实现了基于RTSP的流媒体播放功能,即RTSPSource。当然还有一些其他的Source,如图中的HTTPLiveSource,还有图中没有画出的GenericSource、StreamingSou转载 2017-12-22 15:22:34 · 476 阅读 · 0 评论 -
Android 源码分析之基于NuPlayer的RTSP流媒体协议
RTSP 概述:RTSP 是Real Time Streaming Protocol(实时流媒体协议)的简称。RTSP提供一种可扩展的框架,使得能够提供可控制的,按需传输实时数据,比如音频和视频文件。RTSP对流媒体提供了诸如暂停,快进等控制,而它本身并不传输数据,RTSP作用相当于流媒体服务器的远程控制。传输数据可以通过传输层的TCP,UDP协议,RTSP也提供了基于 RTP传输机制的一转载 2018-01-11 11:15:01 · 1783 阅读 · 0 评论 -
Android rtsp流媒体音视频帧的处理流程
先把从收到rtp包到封装成完整的一帧涉及的相关函数从上到下罗列一遍,后续在忘记的情况下理清的时候可以作为线索,不用从头去分析代码(MyHandler.h)onMessageReceived(case setu) sp notify = new AMessage('accu', id());void ARTPConnection::addStreamvoid ART转载 2018-01-11 11:16:25 · 1079 阅读 · 0 评论 -
I版本和J版本打给rtsp音视频帧打时间戳公式
给音视频帧打上时间戳之前必须要做一些初始化的操作,I和J版本是一致的,大致过程如下:根据服务器是否发送SR类型的RTCP包分为两种情况1:服务器发送SR类型RTCP包status_t ARTPConnection::parseRTCP(StreamInfo *s, const sp &buffer) { if (s->mNumRTCPPac转载 2018-01-11 11:19:26 · 988 阅读 · 0 评论 -
NuPlayerDecoder与NuPlayerRenderer分析
Renderer对video的处理是判断video是否已经延迟过长,如果是就不渲染了。渲染开始是在ACodec的onOMXFillBufferDone,ACodec发消息到MediaCodec,MediaCodec会updateBuffers然后调用onOutputBufferAvailable中通知Decoder有可用的output buffer.Decoder接收消息后就handleA转载 2018-01-03 11:02:01 · 2514 阅读 · 0 评论 -
Android NuPlayer要点详解
本文将基于Android N源码对NuPlayer做一个详解。NuPlayer是Android中本地和流媒体播放所用的播放器。1、AHandler机制首先介绍NuPlayer中无处不在的AHandler机制 frameworks/av/include/media/stagefright/foundation/ frameworks/av/media/libstagefrig转载 2017-12-29 15:40:02 · 1278 阅读 · 0 评论 -
关于 android 6.0 上的 nuplayer 播放时的图像卡顿
作为一个和 android nuplayer 打了 N年交道, 自以为已经上古司机的老码农, 这一次居然被坑了一个礼拜;事情描述起来很简单, 测试人员突然发现目前的版本,播放很多视频都卡顿, 由于该项目在几个月之前就已经基本收敛, 实际上近几个月大家都是没怎么测试的; 测试突然报了一堆类似异常过来, 直接把问题级别拉到最高了;// MAGIC1. DO NOT TOUCH. BY 冗戈微言 h...转载 2018-07-12 22:31:53 · 1103 阅读 · 0 评论