2011-05-24 14 views
5

मुद्दा यह है कि player.status रिटर्न AVPlayerStatusReadyToPlay एक पूर्ण 2 सेकंड पहले player.currentItem.status रिटर्न AVPlayerItemStatusReadyToPlay है। क्या किसी के पास कोई उपयोगी स्पष्टीकरण है कि यह क्यों हो रहा है?
यह केवल नमूना कोड है जो कि क्या हो रहा है, इसके बारे में मूलभूत विचार दिखाने के लिए है ताकि यदि कोई टाइपो हो या जो भी उन्हें अनदेखा कर दें।AVPlayerStatus बनाम AVPlayerItemStatus

- (void) someMethod 
{  
    player = [[AVPlayer alloc] initWithURL:someValidURL]; 
    [player play]; 

    NSTimer *timer = [NSTimer timerWithTimeInterval:0.1 target:self selector:@selector(checkStatus:) userInfo:nil repeats:YES]; 
    [[NSRunLoop mainRunLoop] addTimer:timer forMode:NSDefaultRunLoopMode]; 
} 

- (void) checkStatus: (NSTimer *)timer 
{ 
    NSLog(@"player status: %i", player.status]); 
    NSLog(@"player item status: %i", player.currentItem.status]); 
} 
+0

हमम ... कोई जवाब नहीं। कॉलिंग [प्लेयर प्ले] और वास्तव में ऑडियो सुनने के बीच एक मनमाने ढंग से देरी भी होती है; और यह दोनों या दोनों स्थिति के बाद है 'कहते हैं कि वे तैयार हैं। मैं केवल कल्पना कर सकता हूं कि ये केवल एवीप्लेयर की बग/क्विर्क हैं और यही वजह है कि क्या हो रहा है के बारे में कोई वास्तविक स्पष्टीकरण नहीं है ...? – SteveB

+0

क्या आप इसे समझने में सक्षम थे? मुझे यहां एक समान समस्या का सामना करना पड़ रहा है http://stackoverflow.com/questions/13977805/avplayer-skips-the-beginning-of-a- वीडियो और मुझे लगता है कि यह संबंधित हो सकता है – GingerBreadMane

+0

कोई जवाब नहीं मिला। हालांकि मैं आपके प्रश्न पर एक नज़र डालेगा। – SteveB

उत्तर

2

हमारे अनुभव में निर्माण Ultravisual AVPlayerStatus और AVPlayerItemStatus एक दूसरे से संबंधित का केवल तरह कर रहे हैं, और अक्सर async राज्यों पर निर्भर करते हैं - यानी, कार्यान्वयन भारी बहु हो जाते हैं, और अक्सर छोटी गाड़ी या खराब रूप से परिभाषित।

हम AVPlayerItemStatus पाया वास्तव में बहुत खेलने के लिए तैयार की सबसे विश्वसनीय सूचक हो सकता है, लेकिन जब से AVQueuePlayer या AVPlayerItemAVMutableComposition उदाहरणों से बनाया रों निपटने वहाँ कुछ gotchas विशेष रूप से थे।