将浮点数组转换为 Wav 文件 Swift [关闭]
Posted
技术标签:
【中文标题】将浮点数组转换为 Wav 文件 Swift [关闭]【英文标题】:Convert Array of Floats to Wav File Swift [closed] 【发布时间】:2020-06-04 22:57:27 【问题描述】:我想将浮点数组(一维)转换为音频文件——然后我想将此音频文件发送到带有 put 请求的服务器,因此我需要将其转换为数据。
我怎么能这样做?我看过有关如何将浮点数组转换为 wav 文件的堆栈溢出帖子,如下所示:Write array of floats to a wav audio file in swift
但我不想存储任何东西,只需将其转换为 wav 文件,将其转换为 Data 并通过 Put 请求将其发送到我的数据库。我怎样才能做到这一点?非常感谢您的帮助!!
【问题讨论】:
【参考方案1】:我建议创建一个临时的AVAudioFile
发送到服务器,并在发送完所有数据后将其删除。这将避免在连接断开或出现其他问题时重新创建文件。它也是一个易于使用的高级 API。
如果您想避免写入文件,可以这样做,但级别要低得多。您可以使用AudioFileInitializeWithCallbacks
创建一个带有基于Data
的自定义回调的AudioFileID
,使用ExtAudioFileWrapAudioFileID
包装它,然后在设置客户端数据格式后使用ExtAudioFileWrite
编写浮点数。
【讨论】:
您介意提供一些代码来展示第一个版本的工作原理吗?我似乎无法在网上找到太多关于如何将 AVAudioFile 实际发送到服务器的信息,因为我需要将其转换为 Data。谢谢! 文件写入后,您可以使用Data.init(contentsOf:)
将其作为数据读取并正常发送到您的服务器。以上是关于将浮点数组转换为 Wav 文件 Swift [关闭]的主要内容,如果未能解决你的问题,请参考以下文章