2009-10-03 9 views
7

Dodałem Tock dźwięk iPhone do mojego własnego niestandardowego klawiaturze tak:Jak uzyskać stłumiony dźwięk klawiatury iPhone OS 3.1?

NSString *path = [[NSBundle bundleWithIdentifier:@"com.apple.UIKit"] pathForResource:@"Tock" ofType:@"aiff"]; 
SystemSoundID soundID; 
AudioServicesCreateSystemSoundID((CFURLRef)[NSURL fileURLWithPath:path], &soundID); 
AudioServicesPlaySystemSound(soundID); 
// we don't dispose of the sound to keep the sound in the cache for the next time 
//AudioServicesDisposeSystemSoundID(soundID); 

w iPhone OS 3.1, jednak dźwięk klawiatury Tock został stłumiony, np jest znacznie cichszy niż inne dźwięki, niż w wersji 3.0. Dźwięk mojej metody jest nadal bardzo głośny i przy maksymalnej głośności. Jak mogę uzyskać taką samą głośność, jak domyślna klawiatura telefonu iPhone?

Nawiasem mówiąc, dźwięk Tock w witrynie Twitterrific jest odpowiednio stłumiony.

Cheers

MrMage

+0

Udało ci się to wyłączyć, prawda? Większość ludzi, których znam, absolutnie nienawidzi tego rodzaju dźwięków. – AlBlue

+0

Oczywiście, że tak. – MrMage

+0

Właśnie dodałem nagrodę za to. Chciałbym mieć kompletne rozwiązanie tego, które odczuwa (na przykład dźwięki) dokładnie takie, jak w rzeczywistości. – MrMage

Odpowiedz

5

Używanie 0x450 jako SystemSoundID działa na mnie przy odpowiedniej głośności - zauważ, że nie respektuje preferencji kliknięć na klawiaturze.

Nie jestem pewien, jak to jest przenośne - działa dla mnie na symulatorze i na iPodzie Touch 3rd gen. Podejrzewam, że działa na wszystkich urządzeniach, ale może ulec zmianie bez powiadomienia w aktualizacji oprogramowania.

Otrzymałem ten numer, ustawiając punkt przerwania na AudioServicesPlaySystemSound i naciskając normalny klawisz klawiatury - pierwsza instrukcja montażu kopiuje Identyfikator SystemSoundID do rejestru, dzięki czemu można go zobaczyć w widoku Rejestry w debugerze.

+0

Dziękuję, dokładnie tego chciałem. – MrMage

+0

Czy Apple odrzuci ten sklep z aplikacjami lub czy jest legalny? – user3246173

2

Zastosowanie AVAudioPlayer zamiast AudioServices i będziesz miał dostęp do właściwości głośności, który pozwala obniżyć i podnieść poziom głośności dźwięku.

+0

Którego głośności mam ustawić, aby naśladować klawiaturę na klawiaturze telefonu iPhone? – MrMage

+0

Właściwość woluminu jest zmiennoprzecinkowa - od 0,0 do 1,0, chociaż wydaje się, że wartości większe niż 1,0 spowodują zwiększenie wolumenu. Jak zapewne zauważysz, dźwięk klawiatury zmienia się wraz ze zmianą głośności iPhone'a. Zacznę od 0,5 i zobaczę, jak to się porównuje. – mahboudz

+0

Użyłem ProLevel (http://www.katsurashareware.com/pgs/prolevel.html), aby zmierzyć poziom wyjściowy z domyślnej klawiatury i gdzieś pomiędzy 0,45 a 0,5 wypracowany – esad

1

To prawdopodobnie głupie, ale widziałem w innym przykładowym kodzie, że istnieje również plik dźwiękowy tick. Z przykładów, które widziałem, wynika, że ​​jest to ofType:@"caf", więc warto spróbować. Przepraszam, jeśli jestem daleko.

1

Korzystając z widoku wprowadzania danych klienta, który obsługuje funkcję UIInputViewAudioFeedback, można odtwarzać dźwięk z odpowiednią głośnością i przestrzegać ustawień dźwiękowych kliknięcia przycisku użytkownika.

Powiązane problemy