zoukankan      html  css  js  c++  java
  • core里面的通知probe是从content层调用的

    1, D:develectron9srccontent enderermediainspector_media_event_handler.cc

    构造入参有个agent

    InspectorMediaEventHandler::InspectorMediaEventHandler(
        blink::MediaInspectorContext* inspector_context)
        : inspector_context_(inspector_context),
          player_id_(inspector_context_->CreatePlayer()) {}

    里面调用:inspector_context_->NotifyPlayerEvents(player_id_, events);

    2,上面函数实现在:D:develectron9src hird_partylink enderercoreinspectorinspector_media_context_impl.cc

    // Convert public version of event to protocol version, and send it.
    void MediaInspectorContextImpl::NotifyPlayerEvents(
        WebString playerId,
        InspectorPlayerEvents events) {
      const auto& player_search = players_.find(playerId);
      if (player_search == players_.end())
        DCHECK(false);
      Vector<InspectorPlayerEvent> to_send;
      to_send.ReserveCapacity(events.size());
      for (const auto& event : events) {
        player_search->value->events.emplace_back(event);
        to_send.push_back(event);
      }
      probe::PlayerEventsAdded(GetSupplementable(), playerId, to_send);
    }

    3,发送通知:SendQueuedMediaEvents

    0,这个最初初始化在D:develectron9src hird_partylink enderermodulesmodules_initializer.cc

    html 的element元素构建而来

    std::unique_ptr<WebMediaPlayer> ModulesInitializer::CreateWebMediaPlayer(
        WebLocalFrameClient* web_frame_client,
        HTMLMediaElement& html_media_element,
        const WebMediaPlayerSource& source,
        WebMediaPlayerClient* media_player_client) const {
      HTMLMediaElementEncryptedMedia& encrypted_media =
          HTMLMediaElementEncryptedMedia::From(html_media_element);
      WebString sink_id(
          HTMLMediaElementAudioOutputDevice::sinkId(html_media_element));
      MediaInspectorContextImpl* context_impl =
          MediaInspectorContextImpl::FromHtmlMediaElement(html_media_element);
      return base::WrapUnique(web_frame_client->CreateMediaPlayer(
          source, media_player_client, context_impl, &encrypted_media,
          encrypted_media.ContentDecryptionModule(), sink_id));
    }
  • 相关阅读:
    C#搭建Oauth2.0认证流程以及代码示例
    DirectoryEntry配置IIS7出现ADSI Error:未知错误(0x80005000)
    C# 操作IIS方法集合
    dedecms首页入口的详细注释
    分享几个在线生成网址二维码的API接口
    Windows平台分布式架构实践
    WINDOWS 2008Server 配置nginx 反向代理服务器 安装成服务
    [支付宝]手机网站支付快速接入
    支付宝 app支付 沙盘使用
    支付宝接口开发-手机网站支付-沙箱测试
  • 原文地址:https://www.cnblogs.com/bigben0123/p/14607489.html
Copyright © 2011-2022 走看看