को हटा या बंद नहीं किया जा सकता है मेरे पास एक एवीप्लेयर है जिसे जब भी कोई लिंक क्लिक किया जाता है तो मैं एक नए दृश्य पर लोड करता हूं।AVPlayer
-(void)createAndConfigurePlayerWithURL:(NSURL *)movieURL sourceType:(MPMovieSourceType)sourceType {
self.playerItem = [AVPlayerItem playerItemWithURL:movieURL];
customControlOverlay = [[AFDetailViewController alloc] initWithNibName:@"AFMovieScrubControl" bundle:nil];
backgroundWindow = [[UIApplication sharedApplication] keyWindow];
[customControlOverlay.view setFrame:backgroundWindow.frame];
[backgroundWindow addSubview:customControlOverlay.view];
playerLayer = [AVPlayerLayer playerLayerWithPlayer:[AVPlayer playerWithPlayerItem:playerItem]];
[playerLayer.player play];
playerLayer.frame = customControlOverlay.view.frame;
[customControlOverlay.view.layer addSublayer:playerLayer];
}
उपरोक्त कोड AVPlayer को मेरे ऐप में जोड़ता है और ठीक काम करता है। मेरे पास मेरे customControlOverlay nib में टॉगल है जो दृश्य को हटा देना चाहिए और AVplayer को खेलने से रोकना चाहिए।
-(IBAction)toggleQuality:(id)sender {
if (qualityToggle.selectedSegmentIndex == 0) {
NSLog(@"HD");
[playerLayer.player pause];
[self.view removeFromSuperview];
} else if (qualityToggle.selectedSegmentIndex == 1) {
NSLog(@"SD");
}
}
दृश्य सही ढंग से हटा दिया गया है लेकिन खिलाड़ी अभी भी पृष्ठभूमि में खेलता है। थोड़ा परीक्षण करने के बाद खिलाड़ी टॉगल क्वालिटी विधि में किसी भी कोड का जवाब नहीं देगा, लेकिन मेरे पास स्ट्रिंग्स हैं क्योंकि चेक लॉग हो रहे हैं।
मैं क्या गलत कर रहा हूं पर कोई विचार?
प्लेयरLayer.player = nil का उपयोग करें; पर्यवेक्षण से हटाए जाने से पहले –
ध्वनि तब भी खेलती रहती है जब मैं ऐसा करता हूं। – AFraser
क्या होगा यदि आप इसे दूसरे क्रम में करते हैं (हटाएं और फिर शून्य पर सेट करें)? – Squatch