在iOS 11中锁定和解锁屏幕后,Twilio音频输入失败

时间:2017-10-02 16:30:11

标签: twilio

更新

Twilio的回应并且能够重现它。短期修复是监听窗口的focus事件并再次请求权限。这不是很好,因为它似乎只适用于锁定一小段时间的屏幕:

window.addEventListener('focus', event => {
  navigator.mediaDevices.getUserMedia({ video: false, audio: true });
});

另一个缺点是,即使他们之前已被拒绝或尚未被要求,它也会在焦点时立即请求用户的许可。他们建议在窗口焦点调用getUserMedia API之前跟踪用户是否已授予权限的状态。

正如Philnash在评论中提到的那样,这很可能是一个苹果公司的错误,因为它在很长时间的锁定屏幕中得到了证明。

这个问题是关于使用Twilio JS SDK捕获音频输入并使用TWIML记录它。

使用twilio client quickstart,我获得了成功录音的间歇性结果。它似乎与某些不稳定的浏览器状态有关,在锁定和解锁屏幕后无法读取输入流。

我很乐意提供我正在使用的完整代码,但AFAIK我所做的唯一相关更改是回调路由,现在返回<Record> TWIML动词。

// Create a TwiML voice response
const response = new VoiceResponse();
response.record({
    timeout: 10,
    transcribe: true,
    action: '/callback',
    maxLength: 180,
    recordingStatusCallback: '/callback',
});
return response.toString();

任何可以帮助诊断的Twilio人?复制相当简单。

  1. 按照快速入门指南中的说明进行操作
  2. 加载快速入门网页iOS Safari
  3. 锁定和解锁屏幕
  4. 尝试拨打电话(或使用上面的TWIML录制一个电话)
  5. 不会捕获音频输入。操作系统 提示您允许访问麦克风。

    如果您尝试在没有锁定/解锁行为的情况下拨打电话,当您点按“呼叫”按钮时,它会按预期工作。我注意到的一个区别是浏览器栏中出现一个红色麦克风图标,表示浏览器正在使用音频,我猜想。在另一种情况下,没有图标可见。

    恢复客户端再次工作的唯一方法是完全关闭选项卡并加载新选项卡。刷新不起作用。

    对这种情况的任何想法或反馈都会很精彩!这很可能是一个Apple漏洞,但我想我会看到你们是否有任何想要分享的见解。

0 个答案:

没有答案