2011-10-23 16 views
13

मैं एक एप्लिकेशन म्यूजिकप्लेयर का उपयोग कर रहा हूं और जब मैं वॉल्यूम को बदलने की कोशिश करता हूं तो दृश्य सूचना दिखाई देता है, जैसा चित्र में दिखाया गया है। यहाँ कोड मैं उपयोग कर रहा हूँ:एप्लिकेशन म्यूजिकप्लेयर वॉल्यूम अधिसूचना

[MPMusicPlayerController applicationMusicPlayer] setVolume:newVolune]; 

किसी को भी जानता है कि कैसे इस अधिसूचना को छिपाने के लिए?

enter image description here

उत्तर

26

मैं नहीं पता है जहां डॉक्स तो कहते हैं, लेकिन अगर आप अपने ऐप के लिए MPVolumeView दृश्य जोड़ने प्रणाली मात्रा ओवरले चली जाती है। यहां तक ​​कि अगर वह दिखाई नहीं देता:

- (void) viewDidLoad 
{ 
    [super viewDidLoad]; 
    MPVolumeView *volumeView = [[MPVolumeView alloc] initWithFrame: CGRectZero]; 
    [self.view addSubview: volumeView]; 
    [volumeView release]; 
    ... 
} 

आप हार्डवेयर मात्रा बटन, setVolume विधि का उपयोग कर सकते हैं या सीधे नियंत्रण के साथ बातचीत (यदि दिखाई दे) कि ओवरले दिखाई नहीं देता है।

+5

मैं एक समस्या थी डब्ल्यू छिपा कर सकते हैं यह एक CGRectZero में भी एयरप्ले आइकन दिखा रहा है, जो परीक्षण के दौरान नहीं हुआ क्योंकि हमारे वाईफाई नेटवर्क पर कोई एयरप्ले डिवाइस नहीं था। आपको वॉल्यूम व्यू सेट करना होगा .ShowsRouteButton = NO; –

+0

@AshFurrow, madmw, जब मैंने अपने ऐप में उपरोक्त कोड तक पहुंचने का प्रयास किया, तो यह मुझे 'अपरिभाषित ऑब्जेक्ट वॉल्यूम व्यू' के उपयोग की तरह त्रुटि दिखा रहा है। इसे कैसे जोड़ेंगे? किसी भी शीर्षलेख फ़ाइल या ढांचे की आवश्यकता है? – Hemang

+0

@ हेमांग खोज MPVolume दस्तावेज़ में देखें, आप इसे MediaPlayer.framework का हिस्सा देखेंगे जब तक कोई संकलक शिकायत न हो। – djromero

0

मुझे आईओएस 6 में इसके साथ सफलता मिली। हालांकि यह अच्छा प्रदर्शन नहीं करेगा। थंब इमेज स्लाइडिंग करते समय यह काफी हद तक कम हो गया। काम करने के लिए मुझे कोड की अंतिम 2 पंक्तियां लेनी पड़ती थीं।

[volumeView release]; 
    ... 
4

iOS6 के लिए मैं आदेश डिफ़ॉल्ट मात्रा परिवर्तन सूचना गायब हो पाने के लिए अल्फा 0 और MPVolumeView की छवि क्षेत्रों के लिए गैर शून्य आकार वाली छवि स्थापित करने के लिए किया था।

// hide the hardware volume slider 
UIImage *thumb = [[UIImage alloc] initWithCIImage:[UIImage imageNamed:@"volumeHider"].CIImage scale:0.0 orientation:UIImageOrientationUp]; 
MPVolumeView *hwVolume = [[MPVolumeView alloc] initWithFrame:self.frame]; 
[hwVolume setUserInteractionEnabled:NO]; 
hwVolume.showsRouteButton = NO; 
[hwVolume setVolumeThumbImage:thumb forState:UIControlStateNormal]; 
[hwVolume setMinimumVolumeSliderImage:thumb forState:UIControlStateNormal]; 
[hwVolume setMaximumVolumeSliderImage:thumb forState:UIControlStateNormal]; 
[self addSubview:hwVolume]; 

यह बनाया MPVolumeView स्क्रीन पर "दृश्यमान" है, लेकिन उपयोगकर्ता के लिए अदृश्य हो।

+0

मैं एक बार इस mpmusicplayercontroller setvolume साथ आईओएस 6.1.4 में काम करने के लिए हो रही है की एक बिल्ली हो रही है। मैं सिर्फ अपनी प्रारंभिक ViewController पर एक राज्य के लिए मेरे ऐप की मात्रा निर्धारित करने के लिए कोशिश कर रहा हूँ, लेकिन प्रणाली मात्रा ओवरले को छिपाने जब setvolume होता है ... मैं कहीं और नीचे दिए गए कोड डाल करने की आवश्यकता कर – snownskate

+0

संपादित करें:। मैं viewDidLoad में ऊपर अपने कोड डाल रहा हूँ, मैं सुपर viewDidLoad में MPMusicPlayerController setvolume डाल रहा हूं – snownskate

+0

उपर्युक्त कोड को मेरे शुरुआती वीसी में डालने और फिर बाद के वीसी के सेटवॉल्यूम को निष्पादित करके यह काम कर रहा है। निश्चित रूप से वांछनीय दृष्टिकोण नहीं है, और यह सुनिश्चित नहीं है कि अन्य लोगों ने इसे कैसे काम किया है, लेकिन सेटअप w/my ऐप लेआउट काम करने के लिए होता है अभी के लिए। – snownskate

0

मेरे लिए, आईओएस 7 पर, उपरोक्त समाधानों में से कोई भी काम नहीं करता है। यहाँ है कैसे मैंने किया:

_volume = [[MPVolumeView alloc] initWithFrame: CGRectMake(-100,-100,16,16)]; 
_volume.showsRouteButton = NO; 
_volume.userInteractionEnabled = NO; 
[self.view addSubview:_volume]; 
[_volume release]; 

यही है, बस MPVolumeView के फ्रेम एक ऑफ स्क्रीन स्थान को इस तरह के (-100, -100) के रूप में निर्धारित किया है।

+0

मेरे लिए काम नहीं कर रहा है :( –

+0

ने मेरे लिए भी काम नहीं किया। मैंने इसे आलसी विधि में आलसी लोडिंग और स्वयं के साथ करने की कोशिश की। कोई नज़दीक नहीं मिला :( –

+0

मेरे लिए भी काम नहीं कर रहा है। – piaChai

2

मुझे हाल ही में एक ही समस्या का सामना करना पड़ा।

CGRect rect = CGRectMake(-500, -500, 0, 0); 
MPVolumeView *volumeView = [[MPVolumeView alloc] initWithFrame:rect]; 
[self.window addSubview:volumeView]; 

यह दोनों आईओएस में काम करता है 7 और 8

+0

धन्यवाद, मेरे लिए काम किया। निश्चित नहीं है कि ऐप्पल ने आईओएस 8 के लिए इसे बदलने का फैसला क्यों किया। – Ashley

0

स्विफ्ट 3: वर्तमान दृश्य नियंत्रक के दृष्टिकोण को MPVolumeView जोड़ने के बजाय, मैं यह आवेदन की खिड़की के लिए एक बार एप्लिकेशन के शुरू में जोड़ने

आप सिस्टम MPVolumeView का उपयोग कर

override func viewDidLoad() { 
    super.viewDidLoad() 
    let volumeView = MPVolumeView(frame: CGRect.zero) 
    self.view.addSubview(volumeView) 
    }