【问题标题】:iOS 15 / Safari - MediaStream not playing/black screeniOS 15 / Safari - MediaStream 不播放/黑屏
【发布时间】:2022-09-27 18:03:57
【问题描述】:

我正在创建一个 1-1 调用应用程序,似乎在使用 Safari ios15 到另一个可用 MediaStream 的 Safari 移动浏览器时遇到问题,但是将其附加到 <video> 标签时仍然是黑屏/没有播放<video> 元素。

我正在使用 PeerJS 在两者之间建立连接并使用 peer.call()peer.answer()

我正在使用navigator.mediaDevices.getUserMedia 从两个对等点开始流,这在所有其他设备上都可以正常工作,iOS 15 上的 Safari 除外。

我还使用将<video> 元素的属性设置为playsinlineautoplay,并在本地流上添加muted,正如其他修复程序所建议的那样,但它们并不好。

有任何想法吗?

    标签: javascript safari webrtc ios15 peerjs


    【解决方案1】:

    首先,我不会使用 safari。但如果你有这种倾向,我会使用 Brosix。你是什​​么意思它不适用于iOS 15?只需使用facetime。或者,您听说过 Zoom 应用程序吗?

    【讨论】:

    • 在一个理想的世界里,我也不会使用 safari。我正在构建的应用程序具有 1-1 视频通话功能,就像要构建的 facetime。
    【解决方案2】:

    video 元素已弃用。只需使用 embed 代替。

    <embed></embed>
    

    就像上面一样。

    【讨论】:

    • 试过了,这不起作用,我正在使用&lt;video&gt;,它适用于我的本地媒体流。为了澄清我从navigator.mediaDevices.getUserMedia 获取流,然后将其附加到&lt;video&gt;&lt;/video&gt; 元素,这在除IOS15 iPhone 之外的所有设备上都可以正常工作......您的意思是&lt;video&gt;&lt;/video&gt; 标签在Safari/IOS 设备上已被弃用?
    • 抱歉,我的意思是 &lt;embed&gt;&lt;/embed&gt; 已弃用。
    • 此外,表达式闭包已被弃用。 developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
    【解决方案3】:

    我在 iOS 14.6 上遇到了类似的问题,所以我在一个周末用几个 IPA 在 Flutter 中重建了我的应用程序。并不太难,并且在周二下午之前在两个应用程序商店中都存在。如果您也移植密钥并复制任何密钥文件,则会有所帮助。

    文档是here.

    请记住,expression closures have been deprecated

    我相信这个问题在 iOS 16.1 中得到了解决,并且与 navigator.mediaDevices.getUserMedia 总是在 Safari 中抛出 unassigned 有关。这也发生在 iOS 上的 Chrome 上,因为苹果强迫谷歌“重新设计”Safari 以迫使用户进入生态系统,并且不允许开发人员使用其他引擎。如果可以的话,值得一读,网络上的大量文章。

    【讨论】:

      【解决方案4】:

      你有没有忘记运行作曲家?有时问题可能过于复杂,仔细检查简单的东西。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-12-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-02-24
        • 1970-01-01
        • 2021-11-28
        • 1970-01-01
        相关资源
        最近更新 更多