gpt4 book ai didi

IOS同步音乐流媒体

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:59:23 24 4
gpt4 key购买 nike

我正在尝试通过 GKSession 将音乐从一台设备流式传输到另一台设备,以便音乐完全同步。到目前为止,我知道如何使用 this 来抓取音频,但我不确定一些事情。我很确定我必须使用 AudioFileReadPackets 来传输数据。

  1. 如何将内存缓冲区中的数据包打包成流发送出去?
  2. 在另一端如何将接收到的数据包转换回音频流?
  3. 确保数据包同步播放的最佳方法是什么?

最佳答案

重要更新:我刚刚创建了一个 repo在 github 上,几乎可以满足您的要求。一探究竟!

下面是我以前的回答:

  1. 一个。首先你想从你的音乐中获取音频缓冲区数据,类似于我在 github 项目中所做的。

    您想要获取此数据并将其分块成数据包,每个数据包都包含您稍后将用于管理其交付并确保它们已同步的 header 信息。因此,例如每个数据包的时间戳、它的顺序、音乐文件哈希等。参见 this回答一个思路,再看看this优秀的教程,向您详细展示了如何为任何目的打包数据包。

  2. 在网络的另一端,您以与打包非常相似的方式解压数据包。再次引用上面详细讨论如何操作的教程。

  3. 这是最难的部分。幸运的是,你只处理两个设备..所以你可以用 GKSession 来做到这一点..否则你将不得不降低一个级别(即使用 bonjour..至于 GKSession 是..的包装器......并且增加了很多开销你买不起实时应用程序.. 但不要 panic .. this 这本书有一个使用 bonjour 的简单好用的例子.. )

这个想法是你想在另一端收集足够的数据包来填充音频队列缓冲区,然后你想发送一个不可靠的数据包(阅读:udp 协议(protocol))来快速开始播放音乐。使用 udp 发送,它接近即时交付(我认为人耳不会区分两个设备之间的延迟).. 偶尔会丢失一个不可靠的数据包.. 所以你要么活用它或想出一种方法来处理它。

最后但并非最不重要的一点是,您绝对想获取 learning core audio 的副本.. 任何在 iOS 中做核心音频的人都需要这个。另请查看以下讨论 this回答.. 当涉及到核心音频/实时 iOS 应用程序时,它会让您注意到很多需要处理的事情。

祝你好运!

关于IOS同步音乐流媒体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15318983/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com