chromium 视频播放逻辑梳理(chromium41)


       作为浏览器,访问网络资源,除了文本网页,再就是音视频资源了。随着互联网的发展,视频资源除了提供让用户学习、娱乐的资源外,在当今时代,还演示着传播实时咨讯的角色。

趁着清明节,用一到两个blog,来说说chromium对于视频播放这块逻辑。


对于WebKit(chromium维护的版本更名为blink),解析到Video标签、Audio 标签时,会分别创建HTMLVideoElement和HTMLAudioElement。这两个类有共同的父类HTMLMediaElement。

        这篇blog,先来介绍下对于视频播放MediaPlayer相关逻辑。下个blog来说说对于Video标签的MediaControls。

     

关于MediaPlayer。实际上是个概念。在WebKit中,有MediaPlayer这个对象,且在content api中有对应的平台实现,WebMediaPlayerAndroid。而对于Android系统来讲,有个播放器内核。即MediaPlayer的具体实现。在android系统源码的Java层,有MediaPlayer.java来暴露相关的接口。

       一.  MediaPlayer(blink中)的创建。


JS invoke(网页JS调用)

       HTMLMediaElement::load()

      HTMLMediaElement::prepareForLoad()

      HTMLMediaElement::createMediaPlayer()

     在函数:HTMLMediaElement::createMediaPlayer()中,有代码:

        m_player = MediaPlayer::create(this);

     这里的MediaPlayer。是blink中的概念MediaPlayer 。这个类在文件platform/graphics/media/MediaPlayer.h中。

    关于MediaPlayer类,在blink中还有个子类:WebMediaPlayerClientImpl。 

    ==========================================================

  二.  WebMediaPlayer的创建

   说到上面的逻辑,但是我们还没有看到对系统MediaPlayer的调用。接着我们来看看对系统MediaPlayer调用这块。

   

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值