【webrtc】MessageHandler 7: 基于线程的消息处理:切换main线程向observer发出通知

news/2024/5/19 1:19:49

以当前线程作为main线程

在这里插入图片描述

RemoteAudioSource 作为一个handler 仅实现一个退出清理的功能

  • 首先on message的处理会切换到main 线程 :main_thread_
  • 其次,这里在main 线程对sink_ 做清理
  • 再次,在main 线程做出状态改变,并能通知给所有的observer 做出on changed 行为。

在这里插入图片描述

对接mediachannel的工作是在worker线程执行的

在这里插入图片描述

RemoteAudioSource 在main 线程处理消息的原因是,消息是在main线程投递的

  • 当 OnAudioChannelGone 发生,这里是说OnAudioChannelGone 可能是在libjingl

http://www.mrgr.cn/p/04247833

相关文章

Blazor流程编排的艺术:深入Z.Blazor.Diagrams库的使用与实践

为现代网页应用开发提供动力的其中一个重要方面就是前端框架的强大功能与灵活性。而在.NET生态中,Blazor以其独特的工作方式和优势逐渐获得了开发者们的青睐。今天,在这篇文章中,我将带你深入探索一个基于Blazor的优秀库——Z.Blazor.Diagrams,我们将了解它是如何帮助开发者…

设计模式: 工厂模式

工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一,这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 工厂模式提供了一种创建对象的方式,而无需指定要创建的具体类。 工厂模式属于创建型…

【未整合】数学 day4.2

博弈论 Nim游戏 对于 \(n=2\),\(a_1=a_2\),后手可以“模仿”先手,使得后手必胜。 对于 \(a_1\ne a_2\),先手可以让自己进入“模仿期”,使得先手必胜。 结论:若 \(\oplus a_i=0\),先手必败,否则必胜。很神奇的东西,证明需要群论知识。 发现石子的合并满足上面四条性质,…

Jmeter内存溢出:java.lang.OutOfMemoryError: Java heap space解决思路

一、问题原因 用JMeter压测,有时候当模拟并发请求较大或者脚本运行时间较长时,JMeter会停止,报OOM(内存溢出)错误。原因是JMeter是一个纯Java开发的工具,内存由java虚拟机JVM管理,当内存回收不及时,堆内存不足时,就会报内存溢错误。 概念补充: 内存泄露:应用使用资源…

java基于云计算的SaaS医院his信息系统源码 HIS云平台源码

目录 云HIS功能模块 1、预约挂号: 2、药库管理: 3、门诊医生站: 4、门诊费用: 5、药房管理: 6、治疗室(门诊护士工作站): 7、统计分析: 8、财务管理:…

C++多态特性详解

目录 概念: 定义及实现: 虚函数重写的两个例外: 1.协变: 2.析构函数的重写: final关键字: override关键字: 多态是如何实现的(底层): 面试题&#xff1…

RabbitMQ(Docker 单机部署)

序言 本文给大家介绍如何使用 Docker 单机部署 RabbitMQ 并与 SpringBoot 整合使用。 一、部署流程 拉取镜像 docker pull rabbitmq:3-management镜像拉取成功之后使用下面命令启动 rabbitmq 容器 docker run \# 指定用户名-e RABBITMQ_DEFAULT_USERusername \# 指定密码-e R…

www.fastssh.com SSH over WebSockets with CDNs

https://www.fastssh.com/page/create-ssh-cdn-websocket/server/这其实不是标准的websocket报文(服务器响应报文无Sec-Websocket-Accept字段),所以无法使用github.com/gorilla/websocket包:GET / HTTP/1.1 Host: hostname:8080 User-Agent: Go-http-cli…

深度学习相关理论

一、深度学习相关理论 1.神经网络概述 2. 卷积神经网络CNN ①卷积层——计算方法是大矩阵内部小矩阵=较小矩阵,作用是特征提取 ②池化层——计算方法是大矩阵通过选取最大值或是平均值变成小矩阵,作用是降维、提高计算效率 3. 激活函数

自动化机器学习——网格搜索法:寻找最佳超参数组合

自动化机器学习——网格搜索法:寻找最佳超参数组合 在机器学习中,选择合适的超参数是模型调优的关键步骤之一。然而,由于超参数的组合空间通常非常庞大,手动调整超参数往往是一项耗时且困难的任务。为了解决这个问题,…

OSPF优化

OSPF的优化主要目的是为了减少LSA的更新量 路由汇总-----可以减少骨干区域的LSA数量 特殊区域-----可以减少非骨干区域的LSA数量 OSPF路由汇总 域间路由汇总 域间路由汇总在ABR设备上进行操作 [GS-R2-ospf-1-area-0.0.0.1]abr-summary 192.168.0.0 255.255.224.0 [GS-R3-o…

关于diffusion model一些统计和数学的基础知识

likelihood-based models,通过(近似)最大似然直接学习分布的probability density(或mass)函数。典型的基于似然的模型包括自回归模型、归一化流模型、基于能量的模型(EBMs)和变分自编码器(VAEs)。 概率质量函数(Probability Mass Function,PMF):概率质量函数用于描述离散随…

UE4 -- 实现用于网络连接的插件

插件 UE中的插件就相当于一个模块,在引擎界面点击创建新的插件后,会在项目文件夹中生成插件的文件夹,在该文件夹内,只需要像游戏项目一样编写插件逻辑,最后在插件选择界面开启该插件即可 当新建插件后,UE会自动生成继承于IModuleInterface的类,说明该文件夹的内容为插件…

OKR-Periods of Words

[POI2006] OKR-Periods of Words 题面翻译 对于一个仅含小写字母的字符串 \(a\),\(p\) 为 \(a\) 的前缀且 \(p\ne a\),那么我们称 \(p\) 为 \(a\) 的 proper 前缀。 规定字符串 \(Q\) 表示 \(a\) 的周期,当且仅当 \(Q\) 是 \(a\) 的 proper 前缀且 \(a\) 是 \(Q+Q\) 的前缀。…

Unity技术学习:RenderMesh、RenderMeshInstanced

叠甲:本人比较菜,如果哪里不对或者有认知不到的地方,欢迎锐评(不玻璃心)! 导师留了个任务,渲染大量的、移动的物体。 当时找了几个解决方案: 静态批处理: 这东西只对静…

spring框架学习记录(2)

文章目录 注解开发bean相关注解开发定义bean纯注解开发纯注解开发中bean的管理 依赖注入相关依赖注入第三方bean管理第三方bean依赖注入 AOP(Aspect Oriented Programming)面向切面编程AOP简介AOP核心概念AOP工作流程AOP切入点表达式通知类型AOP通知获取数据 注解开发 bean相关…

Phone List

题目描述输入格式输出格式样例 样例输入 2 3 911 97625999 91125426 5 113 12340 123440 12345 98346 样例输出 NO YES 数据范围与提示这道题的三条判断是否存在前缀的标准:当在建树字符串已经到结尾时,如果该点有结束标记,那肯定是前缀(不是真前缀)当在建树字符串已经到结…

《自动机理论、语言和计算导论》阅读笔记:p352-P401

《自动机理论、语言和计算导论》学习第 12 天,p352-P401总结,总计 50 页。 一、技术总结 1.Turing Machine ™ 2.undecidability ​ a.Ld(the diagonalization language) 3.reduction p392, In general, if we have an algorithm to convert insta…

MySQL双层游标嵌套循环方法

文章目录 1、需求描述2、思路3、创建存储过程 1、需求描述 1、在项目中,需要将A表中主键id,逐个取出,作为条件,在B表中去逐一查询,将B表查询到的结果集(A表B表关系:一对多)&#xf…

SSM教务管理系统设计与实现(附源码下载地址)

@目录01 项目背景02 使用技术03 运行环境04 功能分析05 数据库设计06 项目工程结构07 部分功能展示及源码7.1 登录页7.2 管理员端--首页7.3 管理员端--课程管理7.4 管理员端--学生管理7.5 教师端--首页7.6 教师端--个人信息7.7 学生端--已修课程7.8 学生端--公告管理08 运行教程…