【问题标题】:How can I convert WebRTC audio stream into a shareable audio stream URL?如何将 WebRTC 音频流转换为可共享的音频流 URL?
【发布时间】:2016-08-22 02:06:10
【问题描述】:

我正在使用 Chrome 的 tabCapture API(请参阅 https://developer.chrome.com/extensions/tabCapture)从 Chrome 中当前活动的标签中捕获音频流。这会创建一个填充了数据的 MediaStream 对象(参见 https://developer.mozilla.org/en-US/docs/Web/API/Media_Streams_API),例如,我可以从 Chrome 的控制台中提取此信息:

MediaStream {id: "qih5TZY7OTyNnydtEQ4IwK3FSFiaYhz54TeG", active: true, onactive: null, oninactive: null, onaddtrack: null…}
active: true
id: "qih5TZY7OTyNnydtEQ4IwK3FSFiaYhz54TeG"
onactive: null
onaddtrack: null
onended: function()
oninactive: null
onremovetrack: null
__proto__: MediaStream

如何将此 MediaStream 操作为流式音频 url,我可以将其传递给另一个应用程序/浏览器进行调谐,类似于流式广播服务?

我可以使用类似 URL.createObjectUrl(my-media-stream) 的东西吗?

https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL

我是否需要转换成使用 websocket 而不是 webRTC?

我可以使用 Socket.io 吗?

谢谢!

【问题讨论】:

    标签: streaming webrtc audio-streaming


    【解决方案1】:

    stream 是这里的本地资源。 createObjectURL 只是在本地通过 URL 引用它的一种技巧。

    如果您想将此数据传输到服务器,在该服务器上可以暂存于永久 URL 后面进行广播,那么您还有工作要做。

    更新:如果你想将流发送到另一台机器,你可以建立一个到另一台机器的 RTCPeerConnection,然后以这种方式发送流。

    【讨论】:

    • 好的,谢谢。本地 URL 可能就足够了,因为我实际上只是想在本地网络中传输流。 (全局 URL 是一个不错的选择,但我现在将满足于本地)。那么使用 createObjectUrl 至少可以让我创建一个本地 URL 吗?我会调查的。
    • @nyarasha 不,我的意思是机器本地。要将流发送到另一台机器,您可以建立一个 RTCPeerConnection。
    • 对,如果连接设备有可以使用WebRTC的浏览器。在这种情况下,我想将流发送到没有网络浏览器的设备。不过还是谢谢。
    猜你喜欢
    • 2017-07-04
    • 1970-01-01
    • 2018-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-16
    • 1970-01-01
    • 2013-05-22
    相关资源
    最近更新 更多