手把手编写儿童手机远程监控App之webrtc建立通信后无法再分享音视频

发布时间:2026/8/26 19:44:40
手把手编写儿童手机远程监控App之webrtc建立通信后无法再分享音视频 概述上节完成webrtc通信类设计实现嘟宝音视频通信但嘟妈与嘟宝建立通信后嘟妈想要点击麦克风与嘟宝通话时却出现问题经过梳理发现问题所在。在建立webrtc通信之前将双方的音视频分享能够实现双方的视频通话嘟宝建立之前分享音视频嘟妈通过按钮点击音视频分享嘟妈无法实现讲过排查webrtc在创建offer时offer需指明视频音频轨道信息一旦创建offeroffer内没有音、视轨发送给对方对方则认为你没有音视频分享以后再分享音视频也是徒劳。看下代码梳理一开始嘟妈就分享音视频则能实现相互音视频try{const localStreamawait navigator.mediaDevices.getUserMedia({video:true,audio:true,})localStream.getTracks().forEach((track){console.log(添加本地轨道:,track)peerConnection.addTrack(track,localStream);})}catch(error){console.log(error)}// 明确声明我要发送音频sendonly或 既发又收sendrecvpeerConnection.addTransceiver(audio,{direction:sendrecv})peerConnection.addTransceiver(video,{direction:sendrecv})// 2. 创建Offerconst offerawait peerConnection.createOffer()await peerConnection.setLocalDescription(offer)await this.pushmsg(offer,JSON.stringify(offer))二嘟妈通过按钮点击分享音视频则嘟妈无法音视频分享// 先创建offerpeerConnection.addTransceiver(audio,{direction:sendrecv})peerConnection.addTransceiver(video,{direction:sendrecv})// 2. 创建Offerconst offerawait peerConnection.createOffer()await peerConnection.setLocalDescription(offer)await this.pushmsg(offer,JSON.stringify(offer))按钮点击分享音视频try{const localStreamawait navigator.mediaDevices.getUserMedia({video:true,audio:true,})localStream.getTracks().forEach((track){peerConnection.addTrack(track,localStream);})}catch(error){console.log(error)}解决方法使用 addTransceiver 占位 replaceTrack定义变量创建offer替换音视频private audioTransceiver!:RTCRtpTransceiver private videoTransceiver!:RTCRtpTransceiver private peerConnection!:any// 明确声明我要发送音频sendonly或 既发又收sendrecvthis.audioTransceiverpeerConnection.addTransceiver(audio,{direction:sendrecv})this.videoTransceiverpeerConnection.addTransceiver(video,{direction:sendrecv})// 2. 创建Offerconst offerawait peerConnection.createOffer()await peerConnection.setLocalDescription(offer)await this.pushmsg(offer,JSON.stringify(offer))asyncenbleMic(){try{const localStreamawait navigator.mediaDevices.getUserMedia({video:false,audio:true,// 只获取音频})localStream.getTracks().forEach(async(track:any){console.log(添加本地轨道:,track)if(track.kindaudio){this.audioTransceiver.sender.replaceTrack(track)}if(track.kindvideo){this.videoTransceiver.sender.replaceTrack(track)}})}catch(error){console.log(error)}}至此音视频通信完成以下为演示效果。嘟宝是为监督孩子身边环境而创建的一套应用它能够实现后台驻留长连接随时接收嘟妈信令建立音视频通道点对点通信而不需要中转服务器。嘟妈是一套WEB 应用使用vue3编写能够兼容app、小程序开发 。而嘟宝采用原生Andorid开发能够获取最大权限保持在后台运行。目前为止嘟宝完成的基本功能设计包括MQTT 基础通信后台驻留SQLite数据存储二维码显示身份识别码开启自启动前台服务任务栏消息发送与点击高德定位实时更新webrtc点对点通信mAgentWeb控件封装解决全屏与获取视频权限问题嘟妈采用vue3编写它的核心需求已完成包含以下部分:完成登录注册页面完成二维码扫描完成与嘟宝绑定与嘟妈建立音视频通信查看嘟宝桌面共享视频项目地址在github上。嘟宝地址嘟妈地址

相关新闻

终极AMD Ryzen性能调优指南:SMU调试工具深度掌控

终极AMD Ryzen性能调优指南:SMU调试工具深度掌控

终极AMD Ryzen性能调优指南:SMU调试工具深度掌控 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https://gitcode…

发布时间:2026/8/20 3:27:49
MT25QL128ABA FLASH 驱动实战:Verilog 实现 SPI 模式 0 读写,时序仿真 100% 通过

MT25QL128ABA FLASH 驱动实战:Verilog 实现 SPI 模式 0 读写,时序仿真 100% 通过

MT25QL128ABA FLASH 驱动实战:Verilog 实现 SPI 模式 0 读写与全流程验证 1. 工程架构设计 MT25QL128ABA 是一款 128Mb 容量的 NOR Flash 存储器,采用标准 SPI 接口通信。在 FPGA 开发中,我们需要设计一个完整的 SPI Master 控制器来实现对其…

发布时间:2026/8/20 3:27:49
贵州光利达建设工程有限公司局网站揭秘:避坑指南与真实报价分享

贵州光利达建设工程有限公司局网站揭秘:避坑指南与真实报价分享

本文关键词:贵州光利达建设工程有限公司局网站最近好多朋友问我,想在贵州接工程或者找施工队,到底怎么找靠谱的公司。说实话,这水太深了。我前几天就在琢磨,贵州光利达建设工程有限公司局网站这个事儿。很多人搜这个,其实是想看看他们家底厚不厚。别信那些吹得天花乱坠的…

发布时间:2026/8/20 3:27:49
跑断腿?我在平阳县建设局网站办证的血泪史与避坑指南

跑断腿?我在平阳县建设局网站办证的血泪史与避坑指南

说实话,以前我对“跑审批”这四个字充满了恐惧。总觉得那是只有大企业或者专业中介才能玩转的游戏,咱们普通小老板或者刚入行的工程人,根本摸不着头脑。直到上个月,我为了一个小型装修项目的施工许可,硬着头皮去了一趟平阳县建设局网站,结果发现,只要找对路子,这事儿真…

发布时间:2026/8/22 20:58:32
为什么你的网站留不住人?揭秘建设网站会员体系的底层逻辑与实操指南

为什么你的网站留不住人?揭秘建设网站会员体系的底层逻辑与实操指南

很多老板都在问:为什么我的网站流量不少,转化率却惨不忍睹?其实,问题往往出在“留客”上。你花了大价钱买流量,用户进来逛了一圈,连个招呼都没打就走了。这就像开了一家实体店,顾客进门看看,然后转身离开,你连个联系方式都没拿到。这种“一次性买卖”思维,在今天的互…

发布时间:2026/8/26 16:46:12
徐州市丰县建设局网站 咋用才不踩坑?老业主掏心窝子分享

徐州市丰县建设局网站 咋用才不踩坑?老业主掏心窝子分享

昨晚半夜两点,我还在盯着手机屏幕,心里那个急啊。为啥?因为我家那套安置房的事儿,开发商那边一直拖泥带水,说是等公示,可公示啥样我心里没底。没办法,只能硬着头皮去查“徐州市丰县建设局网站”。说实话,第一次上去的时候,我整个人是懵的。界面那叫一个复古,跟咱们老…

发布时间:2026/8/26 16:46:10
龙口网站建设公司哪家好?别踩坑,看这几点就够了

龙口网站建设公司哪家好?别踩坑,看这几点就够了

本文关键词:龙口网站建设公司哪家好做企业官网,最怕啥?怕花了几万块,结果打开慢得像蜗牛,手机端还乱码。更怕的是,搜“龙口某某公司”,首页连个影子都找不着。钱打水漂,还耽误事。很多老板找我聊,开口就问:“龙口网站建设公司哪家好?”这话问得实在。毕竟龙口这地方…

发布时间:2026/8/26 16:46:11
别再被忽悠了!一份真正落地的建筑网站建设方案,专治各种花里胡哨

别再被忽悠了!一份真正落地的建筑网站建设方案,专治各种花里胡哨

说实话,我见过太多建筑公司的官网了。真的,多到让人想吐。要么就是满屏的大图,加载慢得像蜗牛。要么就是文案写得云里雾里,根本不知道你是干啥的。客户点进来三秒钟,啪,关掉了。这就叫浪费生命。今天我不讲那些虚头巴脑的理论。我就想聊聊,到底怎么做一个真正能接活的建…

发布时间:2026/8/25 22:37:00
个人做计算机编程与网站建设到底难不难?老程序员掏心窝子说几句

个人做计算机编程与网站建设到底难不难?老程序员掏心窝子说几句

这篇文章不讲那些虚头巴脑的理论,直接告诉你新手入坑计算机编程与网站建设最真实的坑在哪,以及怎么避开。很多人以为写代码就是对着黑屏幕敲字母,其实那是电影骗人的。真正的难点在于怎么把脑子里的想法变成别人能看懂、能用的网页。如果你正纠结要不要学,或者刚起步觉得头…

发布时间:2026/8/25 1:53:12