2012-04-24 14 views
12

मैंने UIView के साथ कस्टम कीबोर्ड बनाया था। हालांकि मुझे कीबोर्ड की क्लिक ध्वनि नहीं सुना। तो मैंने कोडों का पालन करने की कोशिश की। लेकिन मैं कुछ भी नहीं सुन सकता। मैं उस कीबोर्ड को कैसे चला सकता हूं ध्वनि क्लिक करें?कुंजीपटल कैसे खेलें कीबोर्ड कीबोर्ड में ध्वनि क्लिक करें?

NSURL* musicFile = [NSURL fileURLWithPath:[[NSBundle mainBundle] 
               pathForResource:@"Tock" 
               ofType:@"aiff"]]; 
    AVAudioPlayer *click = [[AVAudioPlayer alloc] initWithContentsOfURL:musicFile error:nil]; 
    [click setVolume:0.15f]; 
    [click play]; 

और मैंने भी अगली कोशिश की।

AudioServicesPlaySystemSound(0x450); 

मैं कैसे कर सकता हूं?

उत्तर

34

इस प्रयास करें:

[[UIDevice currentDevice] playInputClick]; 

ध्यान दें कि

इस विधि का प्रयोग करें एक उपयोगकर्ता एक कस्टम इनपुट या कुंजीपटल गौण दृश्य में दोहन के जवाब में मानक प्रणाली कुंजीपटल क्लिक खेलने के लिए। केवल तभी क्लिक करें जब उपयोगकर्ता ने सेटिंग> ध्वनि में कीबोर्ड क्लिक सक्षम किए हों, और केवल तभी इनपुट दृश्य स्वयं सक्षम और दिखाई दे।

, इनपुट क्लिक के लिए एक कस्टम इनपुट या गौण दृश्य सक्षम करने के लिए निम्न दो चरण पूरे करें:

अपने इनपुट दृश्य कक्षा में UIInputViewAudioFeedback प्रोटोकॉल अपनाएं। हाँ वापस करने के लिए enableInputClicksWhenVisible प्रतिनिधि विधि को कार्यान्वित करें।

+5

मैंने निर्देशों का पालन किया, लेकिन हालांकि, मेरे कीबोर्ड पर कोई क्लिक ध्वनि नहीं है। सिस्टम कीबोर्ड पर ध्वनि काम पर क्लिक करें। –

3

इस के किसी भी प्राप्त नहीं किया जा सका काम करने के लिए है, लेकिन यह मेरे लिए काम किया:

#import <AudioToolbox/AudioToolbox.h> 

AudioServicesPlaySystemSound(1104); 

लेकिन फिर भी मैं एक UIButton उपवर्ग और इसे करने के लिए UIInputViewAudioFeedback प्रोटोकॉल जोड़ने के लिए किया था।

+0

यह काम किया। मुझे UIInputViewAudioFeedback प्रोटोकॉल जोड़ने की भी आवश्यकता नहीं थी। लेकिन यह कुंजीपटल क्लिक ध्वनि की सिस्टम सेटिंग का सम्मान नहीं करता है। मैं आईओएस 11 पर हूं। –

1

स्विफ्ट में निम्नानुसार इनपुट दृश्य में एक एक्सटेंशन जोड़ें;

extension UIInputView : UIInputViewAudioFeedback { 

    public var enableInputClicksWhenVisible: Bool { 
     return true 
    } 

} 
अपने बटन के लिए

कार्रवाई विधि में फोन निम्नलिखित कार्य:

UIDevice.current.playInputClick() 

अपने Info.plist के लिए निम्न संपत्ति जोड़ें:

NSExtension | NSExtensionAttributes | अनुरोध OpenAccess = YES

+0

यह ध्वनि बजाता है भले ही हम "फोन सेटिंग्स" से किसी भी समाधान को कीबोर्ड ध्वनि अक्षम करते हैं .. –

+0

जैसा कि मैं याद करता हूं, यह काम करता है, लेकिन यह एक कैशिंग समस्या है। यदि आप सेटिंग्स को बदलने के बाद डिवाइस को पुनरारंभ करते हैं तो यह प्रभावी होगा। – Litehouse

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