【问题标题】:what type of message can a websocket send?websocket 可以发送什么类型的消息?
【发布时间】:2012-06-13 13:45:03
【问题描述】:

我正在尝试使用 websocket 发送音频消息,我应该将音频流更改为哪种类型的消息,以便我可以使用套接字发送? 如果我直接使用 websocket.send(audio),我会得到一个错误“DOMException”,我应该把它改成二进制数据吗?如何? 我完全是编程新手,所以请帮忙!!!

【问题讨论】:

    标签: websocket


    【解决方案1】:

    Websocket API,支持发送 Blob 和 ArrayBuffer 二进制类型。

    如果您的浏览器支持Mozilla's audio data API,那么您可以从音频标签中读出数据作为 ArrayBuffer 并发送。不过,这个 API 不太可能标准化。

    如果您的浏览器支持 Web Audio API(由 Google 提出),那么您还可以提取数据的 ArrayBuffer 并将其发送。 Web Audio API 可能会得到更多的采用。这是intro to Web Audio APIThis FAQ 有一个答案,描述了如何使用 Web Audio API 从普通的音频/视频标签中读取。

    更新

    this blog post 中提到的 Aurora.js 库看起来可能有助于处理音频和二进制数据。

    【讨论】:

    • 那么我如何从现有的音频标签中获取数据流,我的意思是,如果已经有一个带有 src 的音频标签,我想获取流并将其添加到 peerConnection,但我可以做这个?
    • 我链接到的网络音频常见问题解答有一个题为“我如何处理来自音频和视频标签的声音?”的问题。它展示了如何使用 Web Audio API 连接到现有的音频标签。 AudioBuffer 上的 getChannelData 方法可用于将原始 PCM 数据读出为 Float32Array (ArrayBuffer):dvcs.w3.org/hg/audio/raw-file/tip/webaudio/…
    • 流和Audiobuffer一样吗?我想从音频标签中获取流,音频缓冲区中存储了什么?我对所有这些事情都很陌生,所以你能给我更多的信息和解释
    • 刚刚用 aurora.js 的链接更新了帖子,这可能有助于回答您的问题。我没有做你自己想做的事。大多数情况下,我只知道一些资源。如果您在其他人发布答案之前就弄清楚了,那么在此处发布将对 SO 社区有所帮助。
    猜你喜欢
    • 2011-08-31
    • 1970-01-01
    • 2012-08-27
    • 1970-01-01
    • 2015-12-10
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 2015-08-25
    相关资源
    最近更新 更多