próbuję uzyskać dźwięk do odegrania, ale kiedy kod:CFURLRef wymaga zmostkowany błąd cast
AudioServicesCreateSystemSoundID ((CFURLRef) alertSound, &soundFileObject);
zgłasza następujący błąd:
obsady Objective-C typu wskaźnika " bibliotece NSURL *”do C typu wskaźnika 'CFURLRef' (aka 'const struct __CFURL *') wymaga zmostkowany błąd cast
próbowałem zarówno z dwóch następujących sugerowanych rozwiązań:
AudioServicesCreateSystemSoundID ((__bridge CFURLRef) alertSound, &soundFileObject);
lub
AudioServicesCreateSystemSoundID ((CFURLRef) CFBridgingRetain(alertSound), &soundFileObject);
Ale nadal nie można uzyskać dźwięk grać.
Domyślam się, że pytanie brzmi: czy błąd pomostu jest przyczyną braku dźwięku, czy powinienem szukać gdzie indziej?
Mogę uzyskać dźwięk do odtworzenia przy użyciu przykładowego kodu SysSound i używam iOS 6 i Xcode 4.5.
Dzięki za wszelkie wskazówki :)
Tak, -50. Mój NSURL wygląda następująco: NSURL * alertSound = [[NSBundle mainBundle] URLForResource: @ "tap" withExtension: @ "aif"]; Plik "tap.aif" znajduje się w grupie, którą utworzyłem o nazwie Dźwięki. Czy jest jakiś konkretny element, który należy umieścić? Dziękujemy za pomoc! – robspencer77
Dla pewności sprawdź w debuggerze lub 'NSLog', że adres URL jest rzeczywiście zerowy. Oznaczałoby to (jak sądzę, że zaczynasz podejrzewać), że Xcode nie kopiuje twojego dźwięku do pakietu twojej aplikacji. Możesz spróbować usunąć (tylko odniesienie !!!!) z twojego projektu i ponownie go dodać, a także podwójnie sprawdzić, czy pisownia nazwy pliku jest poprawna (czy może to być .aiff?). Nie sądzę, że musisz umieścić go w dowolnym miejscu. Zwykle umieszczam takie rzeczy w grupie "Supporting Files", którą tworzy Xcode, ale nie sądzę, że jest to wymagane. – idz
Ah, rozumiem! Dzięki! :) Nie wiem, dlaczego to nie zostało dodane w pierwszej kolejności. Pozdrawiam, idz! – robspencer77