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

如何解决Banno插件卡片中Twilio视频的音视频权限及自动播放问题?

在Banno Plugin Card中解决Twilio嵌入式视频的iframe权限问题

我通过<Banno External Application -> Plugin Card>搭建的聊天插件已实现基础认证聊天功能,但接入Twilio嵌入式视频服务时遇到权限问题:iframe外全屏运行视频功能正常,iframe内却无法自动启动视频,还抛出「Not allowed to call getUserMedia」错误。观察到Banno的iframe带有sandbox属性,推测是该属性的限制导致问题,当前iframe代码如下:

<iframe scrolling="no" frameborder="0" sandbox="allow-top-navigation-by-user-activation allow-scripts allow-forms allow-same-origin allow-downloads allow-modals" referrerpolicy="strict-origin-when-cross-origin" no-footer="" src="https://--first party URI is here inserted--/?channel=mobile"> </iframe>

解决方法:

  • 补充sandbox缺失的权限
    当前sandbox属性缺少两个关键权限:

    • allow-media:允许iframe访问摄像头、麦克风等媒体设备,解决getUserMedia调用被禁止的问题
    • allow-autoplay:允许媒体自动播放,配合video标签的autoplay/muted属性实现自动启动
      调整后的sandbox属性应为:
    sandbox="allow-top-navigation-by-user-activation allow-scripts allow-forms allow-same-origin allow-downloads allow-modals allow-media allow-autoplay"
    

    注意:该调整需要联系Banno平台方修改iframe配置,因为sandbox属性由Banno控制。

  • 通过用户交互触发视频初始化
    即使添加了sandbox权限,浏览器安全策略仍要求媒体权限请求必须由用户主动交互(如点击按钮)触发,不能在页面加载时自动调用。因此需要将Twilio视频的初始化逻辑(如加入房间、获取媒体流)绑定到用户的点击事件上,比如添加一个「开启视频通话」按钮,点击后再执行Twilio的相关代码。

  • 优化video标签配置
    确保video标签同时设置playsinline属性,避免移动端强制全屏播放影响自动启动逻辑,最终标签示例:

    <video autoplay muted playsinline></video>
    

已有开发者在Banno Plugin Card中成功运行视频服务,核心就是调整sandbox权限并遵循浏览器的媒体安全规则。

内容的提问来源于stack exchange,提问作者Dan Coughlin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 23:55:19