2009-10-03 14 views
7

मैं इस तरह मेरे स्वयं के कस्टम कुंजीपटल करने के लिए iPhone की Tock ध्वनि जोड़ लिया है:आईफोन ओएस 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); 

iPhone OS 3.1 में, हालांकि, कुंजीपटल Tock ध्वनि ओढ़ा कर दिया गया है, उदाहरण के लिए अन्य ध्वनियों की तुलना में कहीं अधिक चुप है और यह 3.0 में था। मेरी विधि की आवाज अभी भी बहुत ज़ोरदार है और अधिकतम मात्रा में है। मैं आईफोन के डिफ़ॉल्ट कीबोर्ड के समान मात्रा कैसे प्राप्त कर सकता हूं?

वैसे, ट्विटर्रिफ में टॉक ध्वनि उचित रूप से मफल हो गई है।

चीयर्स

MrMage

+0

और आपने इसे बंद करने का एक तरीका प्रदान किया है, है ना? ज्यादातर लोग मुझे पता है कि उन तरह की आवाज़ से बिल्कुल नफरत है। – AlBlue

+0

बेशक मैंने किया था। – MrMage

+0

बस इसके लिए एक उपहार जोड़ा। मैं इसके लिए एक पूर्ण समाधान लेना चाहता हूं जो वास्तविक चीज़ की तरह महसूस करता है (उदा। लगता है)। – MrMage

उत्तर

5

0x450 का उपयोग कर सिस्टमसाउंड आईडी सही मात्रा में मेरे लिए काम करता है - ध्यान दें कि यह कुंजीपटल क्लिक ऑन/ऑफ वरीयता का सम्मान नहीं करता है।

मुझे यकीन नहीं है कि यह पोर्टेबल कैसे है - यह सिम्युलेटर पर और आईपॉड टच 3 जीन पर मेरे लिए काम करता है। मुझे संदेह है कि यह सभी उपकरणों पर काम करता है लेकिन सॉफ़्टवेयर अपडेट में बिना किसी सूचना के बदल सकता है। पहले विधानसभा अनुदेश प्रतियां SystemSoundID एक रजिस्टर में, में रजिस्टर डीबगर में देखने ताकि आप इसे देख सकते हैं -

मैं AudioServicesPlaySystemSound पर एक ब्रेकपाइंट की स्थापना और एक सामान्य कुंजीपटल कुंजी दबाकर ऐसा नंबर मिला है।

+0

काम किया, धन्यवाद, यह वही है जो मैं चाहता था। – MrMage

+0

क्या ऐप्पल इसे अस्वीकार कर देगा या क्या यह ऐप स्टोर कानूनी है? – user3246173

2

AudioServices के बजाय AVAudioPlayer का प्रयोग करें और आप एक मात्रा संपत्ति है कि आप कम और ध्वनि की मात्रा को बढ़ाने के लिए अनुमति देता है के लिए उपयोग होगा।

+0

और आईफोन के कीबोर्ड टॉक की नकल करने के लिए मुझे इसे किस वॉल्यूम पर सेट करना है? – MrMage

+0

यह वॉल्यूम प्रॉपर्टी एक फ्लोट है - कहीं भी 0.0 और 1.0 के बीच, हालांकि ऐसा लगता है कि 1.0 से अधिक मान भी उच्च वॉल्यूम उत्पन्न करेंगे। जैसा कि आप शायद ध्यान दें, कीबोर्ड की ध्वनि बदलती है जब आप आईफोन की मात्रा बदलते हैं। मैं 0.5 से शुरू करूंगा और देख सकता हूं कि इसकी तुलना कैसे की जाती है। – mahboudz

+0

मैंने डिफ़ॉल्ट कीबोर्ड से आउटपुट स्तर को मापने के लिए प्रोलेवल (http://www.katsurashareware.com/pgs/prolevel.html) का उपयोग किया और कहीं 0.45 और 0.5 के बीच – esad

1

यह शायद बेवकूफ है, लेकिन मैंने अन्य नमूना कोड में देखा है कि tick ध्वनि फ़ाइल भी है। और मैंने जो उदाहरण देखा है, उससे ofType:@"caf" है, इसलिए यह भी एक कोशिश के लायक है। क्षमा करें अगर मैं रास्ता बंद कर रहा हूँ।

1

UIInputViewAudioFeedback का समर्थन करने वाले ग्राहक इनपुट व्यू का उपयोग करके, आप सही मात्रा में ध्वनि चला सकते हैं और उपयोगकर्ताओं की कुंजी ध्वनि सेटिंग्स पर क्लिक कर सकते हैं।

संबंधित मुद्दे