以'和'资源格式播放声音数据的现代方式是什么?

时间:2010-03-04 18:19:18

标签: cocoa macos

{@ 1}}等声音管理器功能已弃用,64位不可用。 AudioServices函数很现代,但似乎只处理文件而不是documented来处理这种格式。

3 个答案:

答案 0 :(得分:1)

我不确定是否有现代的API可以播放它们,可能是因为格式既古老又复杂,从System 7开始并且自那时起多次扩展。

我发现了关于'snd'资源的文章:

  

系统声音文件只是类型1   'snd'资源存储的类型   'sfil'和'movr'的创造者。该   Mac OS提供熟悉的图标   他们并允许播放   Finder双击它们。一个   'snd'是一种资源   由一系列命令组成   由Sound Manager使用。此外   数字化的声音样本'snd'   资源可以直接包含   调频和波   基于表格的声音。任意数量的   三种类型可以结合使用   产生复杂的各种效果   声音文件。简单的嘟嘟就是一个例子   一个非数字化的'snd'。有   两种'snd'资源,   惊人地称为类型1和类型2。   类型1是上述格式   并被称为系统声音   格式。类型2用于   HyperCard只能包含一个   采样(数字化)声音。 SoundApp   可以玩两种类型,但只会   转换采样的声音。更多   关于'snd'文件的信息请教   在Macintosh VI或Inside里面   Macintosh:声音。熟悉   资源管理器也是   很有帮助。 8位样本存储为   无符号字节,如SoundCap / Edit,   但是16位样本被签名,比如   AIFF。立体声'资源'也是   可能,但Sound Manager 3.0或   以后需要播放16位   样品直接。可能的类型   压缩'snd'资源   是相同的MACE,IMA和μ律类型   用于AIFF-C文件。

来源:http://www-cs-students.stanford.edu/~franke/SoundApp/formats.html#system7

我认为您最好的选择是将任何此类声音重新录制为中间无损格式以用于存档目的,然后将其转换为适合您应用要求的最佳格式。

答案 1 :(得分:0)

Core Audio绝对是你想要的。但是,我相信你在Core Audio文档上有误。您链接的表格包含“NeXT / Sun Audio(.snd,.au)”条目。

你提到Core Audio“似乎只处理文件”,但事实并非如此。您可以使用类型为kAudioUnitType_Generator的源和子类型kAudioUnitSubType_ScheduledSoundPlayer来设置图表。

我写了一个morse code program,它混合了内存中生成的多个音频源。这可能是一个有用的例子。 MTPlayer.m是开始查看代码的合理位置。

答案 2 :(得分:-1)

Quattro Pro提供了一个宏命令{Play name.snd},其中name是程序附带的三个数字文件之一。这是一个运行在640kb + RAM上的电子表格。 SND文件的大小约为5kb,持续一秒左右。 Borland(制作Quattro Pro)没有提供完善的编辑备份,但是大约在1992年,我猜这些文件很容易获得。我仍然有该电子表格的工作副本,但还没有(现在)退回现有的声音文件以进行试验。