1) AVPlayer
कई मामलों में वीडियो बफ़र होगा, कोई नहीं Cleary प्रलेखित। मैं कहूंगा कि जब आप वीडियो में प्रवेश करते हैं, और जब आप वर्तमान आइटम को प्रतिस्थापित करते हैं तो आप बफरिंग की उम्मीद कर सकते हैं। क्या हो रहा है यह जानने के लिए आप currentItem.loadedTimeRanges
देख सकते हैं। वह संपत्ति आपको बताएगी कि कौन सी वीडियो समय सीमाएं लोड की गई हैं।
इसके अलावा, कुछ अन्य currentItem
गुण हैं जो आपकी मदद कर सकते हैं: playbackLikelyToKeepUp
, playbackBufferFull
और playbackBufferEmpty
।
एक परिपूर्ण अंतराल प्लेबैक प्राप्त करना आसान नहीं है।
/* player is an instance of AVPlayer */
[player addObserver:self
forKeyPath:@"currentItem.loadedTimeRanges"
options:NSKeyValueObservingOptionNew
context:kTimeRangesKVO];
observeValueForKeyPath:ofObject:change:context:
में:
if (kTimeRangesKVO == context) {
NSArray *timeRanges = (NSArray *)[change objectForKey:NSKeyValueChangeNewKey];
if (timeRanges && [timeRanges count]) {
CMTimeRange timerange = [[timeRanges objectAtIndex:0] CMTimeRangeValue];
NSLog(@" . . . %.5f -> %.5f", CMTimeGetSeconds(timerange.start), CMTimeGetSeconds(CMTimeAdd(timerange.start, timerange.duration)));
}
}
2) बस player.rate
पर नजर रखना।
[player addObserver:self
forKeyPath:@"rate"
options:NSKeyValueObservingOptionNew
context:kRateDidChangeKVO];
फिर अपने
observeValueForKeyPath:ofObject:change:context:
में
:
if (kRateDidChangeKVO == context) {
NSLog(@"Player playback rate changed: %.5f", player.rate);
if (player.rate == 0.0) {
NSLog(@" . . . PAUSED (or just started)");
}
}
3) आप build a movie of a given length using a still image कर सकते हैं, लेकिन यह खिलाड़ी के शीर्ष पर एक नियमित UIImageView
उपयोग करने के लिए आसान है। आवश्यकता होने पर इसे छुपाएं/दिखाएं।
नमूना परियोजना: the code I wrote to support my answer के साथ खेलने के लिए स्वतंत्र महसूस करें।
बहु-आइटम क्रमिक अंतराल प्लेबैक के लिए AVQueuePlayer देखें। – MikeyWard
इसे पहले से ही इस्तेमाल किया गया है, यह स्ट्रीम किए गए ऑडियो/वीडियो सामग्री को संभाल नहीं करता है, मैंने इसे पहले से ही AVPlayer का उपयोग करके किया है। धन्यवाद –
@OmerWaqasKhan अपने ऐप के नेटवर्क पैकेट का निरीक्षण करने के लिए चार्ल्स का उपयोग करें, और आप देख सकते हैं कि – onmyway133