2013-02-19 75 views
8

मेरे ऐप में मुझे 0 से अधिकतम सिस्टम वॉल्यूम (यह एक अलार्म ऐप) से ध्वनि चलाने की आवश्यकता है।ध्वनि संकेतक के बिना आईओएस में अधिकतम मात्रा में ध्वनि फ़ाइल कैसे चलाएं

मैं वर्तमान में AVAudioPlayer का उपयोग ध्वनि चलाने के लिए और MPMusicPlayerController अलार्म

MPMusicPlayerController.applicationMusicPlayer.volume = 1.0; 


NSString *fileName = [NSString stringWithFormat:alarm.sound]; 
fileName = [fileName stringByDeletingPathExtension]; 

NSString *soundFilePath = [[NSBundle mainBundle] pathForResource:fileName ofType:@"aifc"]; 
NSURL *soundFileURL = [NSURL fileURLWithPath:soundFilePath]; 

audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:soundFileURL error:nil]; 
audioPlayer.volume = 0.0; 
audioPlayer.numberOfLoops = -1; 

[audioPlayer prepareToPlay]; 

audioPlayer.play; 

और उसके बाद मैं एक टाइमर अनुसूची मात्रा बढ़ाने के लिए की अवधि के लिए डिवाइस के वॉल्यूम को अधिकतम करने के

timer = [NSTimer scheduledTimerWithTimeInterval:1.0 
             target:self 
             selector:@selector(pollTimeForGradualVolumeIncrease) 
             userInfo:nil repeats:YES]; 

// धीरे-धीरे मात्रा बढ़ाएं

- (void)pollTimeForGradualVolumeIncrease 
{ 
    timerSecond += 1; 

    if (audioPlayer.volume < 1.0 && timerSecond % 1 == 0) 
    { 
     [audioPlayer setVolume:audioPlayer.volume + 0.02]; 
     UISlider *slider = volumeSliderView.subviews[0]; 
     [slider setValue:1.0 animated:NO]; 
    } 
    else if (audioPlayer.volume >= 1.0) 
    { 
     timerSecond = 0; 
     timer.invalidate; 
     timer = nil; 
    } 
} 

इस समस्या में यह है कि आईओएस वॉल्यूम सूचक दिखाई देगा जब MPMusicPlayerController.applicationMusicPlayer.volume

क्या आईओएस वॉल्यूम बदलते संकेतक को प्रदर्शित किए बिना अधिकतम डिवाइस वॉल्यूम पर ध्वनि फ़ाइल चलाने का कोई तरीका है?

+0

आपने कहा कि आप एप्लिकेशन म्यूजिकप्लेयर वॉल्यूम का उपयोग कर रहे हैं, लेकिन मुझे लगता है कि आप ऑडियोप्लेयर सेटवॉल्यूम का उपयोग कर रहे हैं जो एक AVAudioPlayer है, क्या आप स्पष्टीकरण दे सकते हैं? – Daniel

+0

जो मैं समझता हूं उससे। ApplicationMusicPlayer आईओएस के लिए मास्टर वॉल्यूम सेट करता है और मैं ध्वनि चलाने के लिए AVAudioPlayer का उपयोग करता हूं। क्या यह सही नहीं है? मैंने http://stackoverflow.com/questions/9279233/ios-maximum-volume-level-for-avaudioplayer?rq=1 से उदाहरण का पालन किया। AVAudioPlayer ध्वनि बजाता है और धीरे-धीरे मास्टर वॉल्यूम के एक अंश से वॉल्यूम बढ़ाता है। –

+0

मुझे नहीं लगता कि आप ऐसा कर सकते हैं, वॉल्यूम को अधिकतम सेट करने के लिए आप क्या कर सकते हैं, परिवर्तन से पहले वॉल्यूम के मान को बनाए रखें और जब आप ध्वनि बजाना बंद कर दें तो उसके मूल मूल्य पर वापस आएं ... – Ondrej

उत्तर

3

मैं 8 महीने पहले संबंधित चीजों के साथ प्रयोग कर रहा था, और जहां तक ​​मुझे याद है, यदि MPVolumeView मौजूद है, तो आईओएस तब सिस्टम वॉल्यूम बदलता संकेतक नहीं दिखाता है।

यदि आप वास्तव में MPVolumeView नहीं देखना चाहते हैं, तो मुझे लगता है कि आप इसे किसी अन्य दृश्य के पीछे छिपा सकते हैं।

+0

इसे एक समान समाधान के साथ फिक्सिंग। मैंने बस MPVolumeView की मूल ऑफ स्क्रीन सेट की है –