You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MacOS Safari调用getUserMedia后旧MediaStream AudioTrack状态为ended

多摄像头音频轨道在MacOS WebKit环境下自动终止问题

问题概述

MacOS Ventura 13.0 环境下(WebKit内核浏览器)开发多摄像头录制应用时,出现特有异常:每次通过getUserMedia新增一个包含摄像头音视频的MediaStream后,前一个流的AudioTrack会自动变为ended状态,仅最新流的音频能正常工作;VideoTrack不受任何影响。该问题在Chrome浏览器中完全不存在,所有AudioTrack始终保持live状态。

复现流程

  • 用户点击「获取设备」按钮,触发getUserMedia调用以获取音视频权限
  • 调用enumerateDevices获取系统所有音视频设备列表
  • 用户选择某摄像头并点击「添加」,携带该设备ID调用getUserMedia,获取对应摄像头的音视频流,此时该流的所有轨道状态均为live,功能正常
  • 用户选择另一摄像头并点击「添加」,再次携带设备ID调用getUserMedia获取新的音视频流
  • 立即检查前一个MediaStream的AudioTrack,其readyState已变为ended,仅最新流的AudioTrack状态正常

已尝试的无效解决方案

  • 禁用video元素的autoplay、playsinline属性,启用controls属性
  • 在调用getUserMedia前后,手动禁用/启用已存在的音频轨道

内容的提问来源于stack exchange,提问作者Filip Szutkowski

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 15:22:21