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