2012-05-16 17 views
5

मैंने अपने आवेदन में तलाश करने के लिए उपयोग किया है और यह ठीक से काम कर रहा है। लेकिन मैं इसके बारे में कुछ और जानकारी चाहता हूं। जो है, अगर मेरे पास 1 मिनट की स्ट्रीमिंग वीडियो फ़ाइल है तो मैं इसे दूसरे 15 वें से दूसरे 45 तक खेलना चाहता हूं (पहले 15 सेकंड और अंतिम 15 सेकंड नहीं खेलेंगे)।AVPlayer seektoTime iPhone

मैं यह कैसे कर सकता हूं?

मुझे पता है कि seekToTime के उपयोग से मैं 15 वें सेकंड से एक वीडियो चला सकता हूं लेकिन इसे 45 वें सेकेंड पर कैसे रोक सकता हूं और यह भी ध्यान दिया जाता है कि वीडियो निर्दिष्ट समय अवधि के लिए खेला गया है?

CMTime timer = CMTimeMake(15, 1); 
[player seekToTime:timer]; 

उपर्युक्त कोड मुझे स्ट्रीमिंग फ़ाइल के 15 वें सेकेंड पर ले जाता है लेकिन इसे 45 वें सेकंड पर कैसे रोकें और अधिसूचित भी हो जाएं?

मैंने बहुत कुछ खोजा है लेकिन मुझे कोई जानकारी नहीं मिल सका।

धन्यवाद

संपादित करें:

रूप @codeghost सुझाव दिया, बस forwardPlaybackEndTime का उपयोग करें।

आप बस का उपयोग कर सकते हैं:

yourAVPlayerItem.forwardPlaybackEndTime = CMTimeMake(10, 1); 

यहाँ 10 AVPlayerItem तक समय खेलेंगे है।

+0

आगे करता है प्लेबैक अंत समय आपके लिए काम करता है? – onmyway133

+0

हां यह काम करता है, कुछ तर्कों को लागू करना था और यह मेरी आवश्यकता के अनुसार काम करना शुरू कर दिया –

+0

क्या आप मेरे प्रश्न http://stackoverflow.com/questions/25717819/forwardplaybackendtime-does-not-work पर एक नज़र डाल सकते हैं? खिलाड़ी अभी भी – onmyway133

उत्तर

7

अपने AVPlayerItem पर forwardPlaybackEndTime संपत्ति सेट करें।

+0

धन्यवाद कोडघोस्ट के लिए खेलता है, मैं इसे अपने कोड में कैसे उपयोग कर सकता हूं, क्या आपके पास इस फॉरवर्ड से संबंधित उदाहरण/ट्यूटोरियल के लिए कोई संदर्भ लिंक है प्लेबैकएंडटाइम –

+2

एक्सकोड में प्लेबैक सिस्टम गाइड देखें, लेकिन आपको बस इतना करना चाहिए इसे सेट करें, उदाहरण के लिए "playerItem.forwardPlaybackEndTime = CMTimeMake (45, 1);"। अपने AVPlayerItem के साथ एक AVQueuePlayer बनाएं और आज के रूप में खेलते हैं। – codeghost

+0

धन्यवाद भाई :) आपने अपना दिन –

0

मैं अगर वहाँ AVPlayer में इस के लिए कुछ निर्माण में है पता नहीं है, लेकिन मुझे क्या करना होगा एक समारोह का निर्माण और से कॉल करने की है:

[self performSelector:@selector(stopPlaying) withObject:nil afterDelay:45]; 


-(void)stopPlaying{ 
    [player pause]; 
} 

इस 45 सेकंड के बाद खेल रहे हैं बंद हो जाएगा, और निश्चित रूप से आप 45 के बजाय किसी भी सेकंड को रख सकते हैं।

+0

आप सही हैं कि खिलाड़ी को रोकने के लिए यह एक और तरीका है, लेकिन जैसा कि कोडघोस्ट ने आगे सुझाया है प्लेबैक एंड टाइम, मैं यह देख रहा हूं कि कैसे कोड में इसका उपयोग करने के लिए, लेकिन अब तक कोई कोड स्निपेट या उदाहरण नहीं मिला है। ऐप्पल का दस्तावेज AVFoundation से संबंधित गरीब है। समझना बहुत मुश्किल है –

0

आप उस उद्देश्य के लिए [AVPlayer addPeriodicTimeObserverForInterval:queue:usingBlock:] का उपयोग कर सकते हैं।

समय-समय पर AVPlayer.currentTime प्राप्त करें, और सही समय पर रोकें या रोकें।