RubyMotion не загружает фреймворк AudioToolbox
Итак, я пытался использовать AudioToolbox с RubyMotion,
1, добавлено
app.frameworks << 'AudioToolbox'
в Rakefile,
2, и в одном из моих простых методов контроллера вида просто добавлен
p AudioFileID
3, Затем rake,
4, Учитывая ошибку,
uninitialized constant RecorderViewController::AudioFileID (NameError)
Очевидно, AudioFileID, который в AudioToolbox не был загружен, я попробовал подобное в CoreAudio, он работает хорошо. Нужно ли мне требовать или что-то еще? Есть идеи? Спасибо.
Ответы
Ответ 1
Я думаю, что добавление AudioToolbox к вашим фреймворкам, вероятно, загружает инструментарий, если вы не видите ошибки во время сборки. Вам не нужно ничего требовать.
У меня есть программа RubyMotion, которая вызывает функции AudioToolbox, такие как AudioFileOpenURL
и AudioFileGetProperty
без ошибок. Поскольку AudioFileID является структурой, я не думаю, что она определена как голая константа для использования. Если вы получаете ошибки при использовании функций AudioToolbox, обновите этот вопрос или, возможно, запустите новый.
Ответ 2
Я создал билет на трекер ошибок RubyMotion и возился с этой проблемой в течение 3 дней сам, вот что я нашел
вам нужно исправить AudioToolbox.bridgesupport для каждой версии iOS, на которую вы нацеливаете (/Library/RubyMotion/data/ios/6.1/BridgeSupport/AudioToolbox.bridgesupport)
, пока эта проблема не будет устранена в предстоящей версии RubyMotion
Заменить эту строку
<cftype type='^{OpaqueAudioFileID=}' name='AudioFileID'/>
с
<opaque type='^{OpaqueAudioFileID=}' name='AudioFileID'/>
таким образом RubyMotion не будет обрабатывать AudioFileID как структуру, определенную где-то (следовательно, неинициализированную постоянную ошибку), и вы сможете создать экземпляр указателя на AudioFileID, вызвав Pointer.new AudioFileID.type