【发布时间】:2013-05-28 20:57:19
【问题描述】:
我正在使用 Mac OS X 的 Cocoa 框架创建一个小型音频编辑器。我通过将所选样本写入临时 WAV 文件来实现“复制”,然后使用 NSSound 加载 URL,然后将数据推送到粘贴板(writeToPasteboard:)。
现在我正在处理粘贴。我从粘贴板创建了一个 NSSound,现在卡住了。如何访问示例?
【问题讨论】:
我正在使用 Mac OS X 的 Cocoa 框架创建一个小型音频编辑器。我通过将所选样本写入临时 WAV 文件来实现“复制”,然后使用 NSSound 加载 URL,然后将数据推送到粘贴板(writeToPasteboard:)。
现在我正在处理粘贴。我从粘贴板创建了一个 NSSound,现在卡住了。如何访问示例?
【问题讨论】:
你没有。 NSSound 不允许您访问原始样本数据。
您需要改用Audio Toolbox 框架。它提供了两个 API 用于在文件中读取和写入音频:Audio File Services 是两者中的较低级别,而Extended Audio File Services 支持压缩和其他功能。
您可能希望在音频文件服务中使用基于回调的 API,因为这些 API 可以使您不必使用临时文件。相反,您将 NSMutableData 对象设置为音频文件的“客户端数据”,然后通过将字节复制到该数据的相关范围(如果需要,首先设置其长度)来实现“写入”并通过复制“读取”一些范围的数据。
【讨论】: