2013-07-30 7 views
6

मैं एक रिकॉर्डिंग एप्लिकेशन विकसित कर रहा हूं और रिकॉर्डिंग शुरू होने पर मैं ध्वनि बजाना चाहता हूं।ऑडियो सर्विसेजप्लेसिस्टम साउंड जबकि AVCaptureSession सक्रिय है

दुर्भाग्यवश ऐसा प्रतीत होता है कि आईओएस 5 के बाद से एक ऑडियो डिवाइस के साथ AVCaptureSession सक्रिय होने पर सिस्टम ध्वनि चलाने के लिए संभव नहीं है।

यहाँ कोड के प्रासंगिक भाग मैं बाद में

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    NSURL * soundURL = [[NSBundle mainBundle] URLForResource:@"recording-starts" withExtension:@"aif"]; 
    AudioServicesCreateSystemSoundID((__bridge CFURLRef)soundURL, &_recStartSound); 

    //... 

    if ([self.captureManager setupSession]) { 
     // ... 

     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ 
      [self.captureManager.session startRunning]; 
     }); 

     // ...      
    } 
} 

उपयोग कर रहा हूँ, मैं सिर्फ AudioServicesPlaySystemSound(_recStartSound) फोन और कुछ भी नहीं रहता है। हालांकि अगर मैं को सत्र सेटअप से पहले एक ही कॉल करता हूं, तो ध्वनि अपेक्षित के रूप में बजाता है।

मैं इस bug report है, जो वास्तव में मेरी समस्या के लिए प्रासंगिक है, साथ ही this और this सवाल यह है कि पाया, लेकिन मैं उनमें से कोई भी किसी भी तरीके को नहीं पा सके।

एवी रिकॉर्डिंग शुरू करने से पहले मैं एक छोटी आवाज कैसे खेल सकता हूं?

+0

ध्वनि चलाएं, फिर कैप्चर शुरू करें? –

+0

यह एक बहुत ही इसी तरह पिछले सवाल यह है: http://stackoverflow.com/questions/16309802/play-system-sound-while-recording-video-audio –

+0

किसी कृपया मुझे इस सवाल के साथ मदद कर सकते हैं http://स्टैक ओवरफ़्लो।कॉम/प्रश्न/21059607/कैसे-उपयोग-कंपन-समय-रिकॉर्डिंग-iphone5-ios –

उत्तर

0

इसके बजाय AVAudioPlayer का उपयोग करके ध्वनि चलाएं।

+0

मुझे समझ में नहीं आता कि यह क्यों मतदान किया जाता है। यह वास्तव में काम करता है और हल करता है कि सवाल क्या पूछ रहा है (AVCaptureSession सक्रिय होने पर ध्वनि चलाएं)। – simonfi

0

sc0rp10n के जवाब का विस्तार, प्रश्न में कोड में परिवर्तन बस होगा:

ध्वनि खिलाड़ी शुरु कर रहा है (_recStartSound प्रकार AVAudioPlayer * की जा रही है):

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    NSURL * soundURL = [[NSBundle mainBundle] URLForResource:@"recording-starts" withExtension:@"aif"]; 
    _recStartSound = [[AVAudioPlayer alloc] initWithContentsOfURL: soundURL error: NULL]; 

    ... 
} 

आप खेलना चाहते हैं जब ध्वनि:

[_recStartSound play]; 
0

देखें Are there any other iOS system sounds available other than 'tock'?

आईओएस 8.1.3/आईफोन 6 पर उपलब्ध कुछ परीक्षण और त्रुटि के बाद, मैं इन दोनों को खेलने में सक्षम था:

ऑडियो सर्विसेजप्लेसिस्टम साउंड (1114);

और

AudioServicesPlaySystemSound (1113);

लिंक करने के बाद ध्वनि खेलने के लिए कोड का केवल एक लाइन की आवश्यकता है:

  • AudioToolbox/AudioToolbox.h

    (अधिक जानकारी के लिए लिंक ऊपर देखें)

और यहां उपलब्ध ध्वनियों की आंशिक सूची है (उपर्युक्त टिप्पणियों से) http://iphonedevwiki.net/index.php/AudioServices

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