所以我试着在RubyMotion中使用AudioToolbox,
1,已添加
app.frameworks << 'AudioToolbox'在Rakefile中,
2,在我的一个简单的视图控制器方法中,简单地添加了
p AudioFileID3,然后是rake,
4,给出一个错误,
uninitialized constant RecorderViewController::AudioFileID (NameError)显然在AudioToolbox中没有加载的AudioFileID,我在CoreAudio中尝试了类似的东西,它工作得很好。我需要要求什么吗?有什么想法吗?谢谢。
发布于 2013-04-10 08:11:03
我认为将AudioToolbox添加到您的框架中可能就是加载工具包,除非您在构建过程中看到错误。您不需要其他任何东西。
我有一个RubyMotion程序,它可以毫无错误地调用AudioFileOpenURL和AudioFileGetProperty等AudioToolbox函数。因为AudioFileID是一个结构,所以我不认为它被定义为一个可以使用的纯常量。如果您在使用AudioToolbox函数时遇到错误,请更新此问题或开始一个新问题。
发布于 2013-05-30 20:22:19
我在RubyMotion bug tracker上创建了一张罚单,自己花了3天时间解决这个问题,以下是我发现的
您必须为针对(/Library/RubyMotion/data/ios/6.1/BridgeSupport/AudioToolbox.bridgesupport)的每个iOS版本的AudioToolbox.bridgesupport打补丁,直到此问题在即将发布的RubyMotion版本中得到修复
替换此行<cftype type='^{OpaqueAudioFileID=}' name='AudioFileID'/>
使用<opaque type='^{OpaqueAudioFileID=}' name='AudioFileID'/>
这样,RubyMotion就不会将 AudioFileID 视为某个地方定义的结构(因此是未初始化的常量错误),而且您可以通过调用Pointer.new AudioFileID.type来实例化指向AudioFileID的指针
https://stackoverflow.com/questions/12580298
复制相似问题