Я пытаюсь установить свою категорию AVAudioSession на основе того, воспроизводится ли уже звук, и, прочитав Apple Dev Docs для AVAudioSession, я придумал этот код, взятый прямо из их решения, для чего я пытается выполнить:AudioSessionGetProperty Undefined Symbols i386
UInt32 otherAudioIsPlaying; // 1
UInt32 propertySize = sizeof (otherAudioIsPlaying);
AudioSessionGetProperty ( // 2
kAudioSessionProperty_OtherAudioIsPlaying,
&propertySize,
&otherAudioIsPlaying
);
if (otherAudioIsPlaying) { // 3
[[AVAudioSession sharedInstance]
setCategory: AVAudioSessionCategoryAmbient
error: nil];
} else {
[[AVAudioSession sharedInstance]
setCategory: AVAudioSessionCategorySoloAmbient
error: nil];
}
Все компилируется правильно, но когда я пытаюсь построить и запустить приложение, я получаю ошибку Mach-O компоновщика, соответствующий AudioSessionGetProperty
.
Undefined symbols for architecture i386:
"_AudioSessionGetProperty", referenced from:
+[AppDelegate setAudioSession] in AppDelegate.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Я импортировалAVFoundation/AVFoundation.h
файл в мой AppDelegate (где код выполняется). Я также импортировал структуру AVFoundation в сам проект. Мне не хватает другой структуры, необходимой для этого метода? Почему я получаю эту ошибку?
Возможно, у вас нет импортированной структуры, добавьте ее из меню «Build Phases-> Link Binary With Libraries», если его нет (AVFoundation.framework) –
AVFoundation.framework указан в разделе «Связывание двоичных файлов с библиотеками» ». – David
Хм, это странно, импортирует AVAudioSession.h? –