2009-01-20 14 views
7

बदलने के लिए UISlider का उपयोग करना किसी ऐप में आईफोन की मात्रा बदलने के लिए यूआईएसलाइडर का उपयोग करने का सबसे अच्छा तरीका क्या है?वॉल्यूम


मैं का उपयोग कर कि विधेयक (Using a UISlider to change volume)

लेकिन कुछ भी नहीं कोड का उपयोग कर स्क्रीन पर दिखाई देता कोशिश की है: एक स्लाइडर के लिए अनुमति देता है कि प्रदर्शित करने के लिए एक MPVolumeView का प्रयोग करें

MPVolumeView *volumeView = [[[MPVolumeView alloc] initWithFrame: 
           CGRectMake(0, 0, 215, 22)] autorelease]; 
volumeView.center = CGPointMake(150,375); 
[volumeView sizeToFit]; 
[self.view addSubview:volumeView]; 

उत्तर

2

Using a UISlider to change volume

^मैंने कोशिश की है कि lostintransit, लेकिन इस रिंगर वॉल्यूम नहीं बदल रहा है। यह आईफोन स्क्रीन पर आता है, लेकिन कुछ भी नहीं बदलता है। प्रदान की गई डेमो परियोजना का भी उपयोग करना।

+0

आप सिम्युलेटर पर यह कोशिश कर रहे हैं? यह सिम पर काम नहीं करेगा। अपने कोड को वास्तविक फोन पर आज़माएं। मैं इसे अपने ऐप्स में से एक में उपयोग कर रहा हूं और यह बहुत अच्छा काम करता है। – lostInTransit

+0

मैंने इसे वास्तविक आईफोन पर आज़माया। – Domness

+1

आप मीडियाप्लेयर framerwork आयात करने की आवश्यकता: #import prendio2

0

सिस्टम वॉल्यूम को संशोधित करें।

15

मुझे अभी एक बहुत ही आसान तरीका मिल गया है। कोडिंग के बजाय, बस इसे अपने एक्सआईबी में रखें।

  1. ओपन XIB जहां स्लाइडर को में
  2. हुए अपने दृश्य पर एक UIView जोड़े रखना चाहते हैं
  3. बदलें UIView से वर्ग की पहचान MPVolumeView को
  4. पृष्ठभूमि रंग बदलें स्पष्ट करने के

देखा!

पीएस: आईफोन ओएस 3.0 के साथ एक डिवाइस पर इसका परीक्षण किया। जैसा कि lostInTransit पहले बताया गया था, यह सिम्युलेटर पर काम नहीं करेगा।

एक आइपॉड टच G2 पर::

+0

कई मायनों रोम करने के लिए नेतृत्व। लेकिन आपका सबसे परिष्कृत है। –

+0

अभी भी आईओएस 5.1.1 पर काम करता है, लेकिन सिम्युलेटर में नहीं। – jwhat

+1

आप यह उल्लेख करना भूल गए हैं कि इस काम करने के लिए प्रोजेक्ट में मीडियाप्लेयर फ्रेमवर्क जोड़ा जाना चाहिए। – Neeku

1

मैं इस उसी तकनीक का उपयोग कर रहा हूँ, फिर भी मैं निम्नलिखित व्यवहार देख रहा हूँ MPVolumeView स्लाइडर काम करता है और पूरी तरह से अनुप्रयोग स्टार्टअप समय से रॉकर स्विच करने के लिए प्रतिक्रिया करता है।

एक आईफोन जनरल 1 और 3 जी पर: MPVolumeView स्लाइडर ऑडियोक्यूयू एपीआई के माध्यम से मीडिया प्लेबैक होने तक वॉल्यूम को बदलना शुरू नहीं करता है, और जब AudioSessionSetActive (false) कहा जाता है तो वॉल्यूम को बदलना बंद कर देगा। और भी विचित्र: यदि आपने प्लेबैक के दौरान ऑडियोक्यूयू एपीआई का उपयोग करते समय आईफोन पर रॉकर स्विच मारा तो MPVolumeView स्लाइडर ऐप के बाकी जीवनकाल के लिए काम करेगा।

This code सबकुछ सिंक में रखता है, और यह सुनिश्चित करने में मदद करता है कि घुमावदार स्विच और स्लाइडर सिंक में रहते हैं, लेकिन यह आईफोन पर MPVolumeView के साथ होने वाले मुद्दों को खत्म नहीं करता है।

आईफोन 3.0 एसडीके के साथ यहां मेरा पूरा अनुभव आईफोन ओएस 3.0 के तहत है।

मुझे आशा है कि इससे आपकी समस्या को कुछ हद तक कम करने में मदद मिलेगी।

मेरी अगली रणनीति kAudioSessionProperty_AudioRoute के साथ चीजों को शुरू करना था और यह देखने के लिए kAudioSessionProperty_AudioCategory के लिए वैकल्पिक मानों को आजमाएं।

साइड नोट: निर्माण और MPVolumeView के प्रबंधन के लिए आईबी तकनीकों पर हर किसी के लिए धन्यवाद। मैं इसे बनाने और रखने के लिए कोड का उपयोग कर रहा था, और मैं तकनीक के बारे में भूल रहा हूं जहां आप आईबी में यूआईवीव के प्रकार को सेट कर सकते हैं।

साइड नोट 2: MPVolumeView के साथ काम करने में मुझे पता चला कि आपको लगता है कि MPVolumeView पाठ "iPhone ..." जब iPhone साइलेंट मोड पर सेट है प्रदर्शित करेगा kAudioSessionCategory_MediaPlayback के अलावा और कुछ करने के लिए ऑडियो श्रेणी निर्धारित करते हैं।

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