2011-10-19 20 views
5

में पाशन किसी को भी एक तरीका है जिसके द्वारा आप आईओएस में एक वीडियो क्लिप की एक पूरी तरह से चिकनी और निर्बाध पाशन प्राप्त कर सकते हैं सुझाव है कि कर सकते हैं? मैं दो तरीकों, जो दोनों के एक छोटे से विराम जब वीडियो playerItemDidReachEnd अधिसूचना seekToTime बंद स्थापित करने के साथ लूपचिकनी वीडियो आईओएस

1) AVPlayerLayer उत्पादन की कोशिश की है: kCMTimeZero

मैं (अन्य कारणों के लिए एक AVPlayerLayer उपयोग करने के लिए पसंद करते हैं), लेकिन यह विधि loops के बीच एक सेकंड के बारे में एक ध्यान देने योग्य विराम पैदा करता है।

2) setRepeatMode साथ MPMoviePlayerController: MPMovieRepeatModeOne

यह एक छोटे ठहराव में परिणाम है, लेकिन यह अभी भी सही नहीं है।

मुझे यकीन नहीं है कि यहां से कहाँ जाना है। क्या कोई आत्मा पैदा कर सकता है?

+0

वाह, कोई प्रतिक्रिया नहीं। मुझे लगता है कि यह आईओएस में करना आसान नहीं होना चाहिए। मैं एक ऐसे कामकाज पर काम कर रहा हूं जिसमें दो वैकल्पिक एवीप्लेयर शामिल हैं, लेकिन यह सिर्फ एक कामकाज है। अभी भी उम्मीद है कि एक क्लिप को आसानी से लूप करने का एक तरीका है। – one09jason

+0

कोई भाग्य? मैं अभी भी इस मुद्दे पर चल रहा हूं। मुझे लूप के बीच छोड़ने के साथ-साथ वीडियो 5-6 लूप के बाद स्थायी रूप से जमा हो रहा है। – brandon

+0

मुझे IOS5 में setRepeatMode के साथ ठंड लग रहा है: MPMovieRepeatModeOne कई लूप –

उत्तर

3

मैं सहमत कर सकते हैं @ SamBrodkin के निष्कर्षों।

[[NSNotificationCenter defaultCenter] 
    addObserver: self 
    selector: @selector(myMovieFinishedCallback:) 
    name: MPMoviePlayerPlaybackStateDidChangeNotification 
    object: m_player]; 

और

-(void) myMovieFinishedCallback: (NSNotification*) aNotification 
{ 
    NSLog(@"myMovieFinishedCallback: %@", aNotification); 
    MPMoviePlayerController *movieController = aNotification.object; 
    NSLog(@"player.playbackState = %d", movieController.playbackState); 
} 

भी मेरे लिए iOS 5 पर गैर पाशन समस्या का समाधान हो।

2

मैं बस अपना आईपैड 3 चल आईओएस 5.1.1 पर इस काम के मिला, आधार एसडीके आईओएस 5.1

जब फिल्म खिलाड़ी की स्थापना, MPMovieRepeatModeNone को दोहराने मोड सेट तो सूचना जोड़ना

[[NSNotificationCenter defaultCenter] addObserver:self 
              selector:@selector(moviePlayerDidFinish:) 
               name:MPMoviePlayerPlaybackDidFinishNotification 
               object:self.moviePlayer]; 

तो फिल्टर करने के लिए जब फिल्म

चलने के बाद अपने चयनकर्ता की स्थापना
- (void)moviePlayerDidFinish:(NSNotification *)note { 
    if (note.object == self.moviePlayer) { 
     NSInteger reason = [[note.userInfo objectForKey:MPMoviePlayerPlaybackDidFinishReasonUserInfoKey] integerValue]; 
     if (reason == MPMovieFinishReasonPlaybackEnded) { 
      [self.moviePlayer play]; 
     } 
    } 
} 

एप्पल कैसे MPMoviePlaye करने के लिए कुछ बड़े बदलाव किए आरकंट्रोलर आईओएस 4 से आईओएस 5 में बदलते समय मूवी फाइलों को लोड करता है, इसलिए मुझे नहीं पता कि यह विधि आईओएस 6

1

जारी करने के लिए काम करेगी, उदाहरण के लिए एक पृष्ठभूमि वीडियो की सहज लूपिंग दिखाता है (एनिमेटेड से जीआईएफ) और अग्रभूमि चरित्र एनिमेशन (अल्फा चैनल के साथ) की एक जोड़ी के बीच स्विचिंग, seamless-video-looping-on-ios पर एक नज़र डालें। मैंने अतीत में एवीप्लेयर का उपयोग करने की कोशिश की और एवीप्लेयर से संबंधित समाधानों को छोड़ना पड़ा क्योंकि वे काफी अच्छी तरह से काम नहीं कर पाए। यह SO प्रश्न भी देखें iphone-smooth-transition-from-one-video-to-another

0

मैं के रूप में मूल रूप से पोस्ट (पाश कि seamlessness तोड़ने गया था में छोटे विराम) द्वारा रिपोर्ट एक ही समस्या की जांच की। भाग्य से मैं एक अन्य विडियो नमूना है कि इस व्यवहार नहीं किया था था और स्पष्टीकरण/अलग ही बाद में पाया:

ध्वनि ट्रैक।

मैं एक बहुत ही धीमी गति से ध्वनि initialisation (मार्ग) पर शक।

ध्वनि ट्रैक निकाल रहा है (ऑडियो मिश्रण विकल्प और समाधान है कि इस सूत्र में पोस्ट कर दिए गए परीक्षण) मेरे लिए सबसे आसान समाधान (कोई आवाज आवश्यक) था, लेकिन मैं आगे खुदाई करने के लिए होगा।

एरिक

-1

अंतराल से बचने के लिए जब वीडियो, rewound है एक संरचना में एक ही संपत्ति की कई प्रतियां का उपयोग कर मेरे लिए अच्छी तरह से काम किया।

AVURLAsset *tAsset = [AVURLAsset assetWithURL:tURL]; 
CMTimeRange tEditRange = CMTimeRangeMake(CMTimeMake(0, 1), CMTimeMake(tAsset.duration.value, tAsset.duration.timescale)); 
AVMutableComposition *tComposition = [[[AVMutableComposition alloc] init] autorelease]; 
for (int i = 0; i < 100; i++) { // Insert some copies. 
    [tComposition insertTimeRange:tEditRange ofAsset:tAsset atTime:tComposition.duration error:nil]; 
} 
AVPlayerItem *tAVPlayerItem = [[AVPlayerItem alloc] initWithAsset:tComposition]; 
AVPlayer *tAVPlayer = [[AVPlayer alloc] initWithPlayerItem:tAVPlayerItem]; 
+0

टूटी हुई लिंक, यह भी सुझाव दिया गया है कि समाधान वास्तव में निर्बाध लूपिंग के लिए काम नहीं करता है। – MoDJ

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