मान लीजिए कि आप पहले ही जानते हैं कि स्ट्रीम से किस तरह का मेटाडेटा भेजा जा रहा है (यदि आप नहीं देखते हैं, तो वीएलसी जैसे मीडिया प्लेयर का उपयोग करें), आपको पहले समय अंतराल में मेटाडेटा प्राप्त करने के लिए अधिसूचना पंजीकृत करनी होगी और फिर उन्हें संसाधित करने के लिए एक विधि।
, अधिसूचना के साथ शुरू सिर्फ
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(MetadataUpdate:)
name:MPMoviePlayerTimedMetadataUpdatedNotification
object:nil];
MPMoviePlayerController आवंटन के बाद।
फिर MetadataUpdate विधि
- (void)MetadataUpdate:(NSNotification*)notification
{
if ([streamAudioPlayer timedMetadata]!=nil && [[streamAudioPlayer timedMetadata] count] > 0) {
MPTimedMetadata *firstMeta = [[streamAudioPlayer timedMetadata] objectAtIndex:0];
metadataInfo = firstMeta.value;
}
}
जहां streamAudioplayer अपने MPMoviePlayerController और metadataInfo एक NSString मूल्य स्टोर करने के लिए है पर
। उपर्युक्त वर्तमान में बजाने वाले गीत के कलाकार और ट्रैक जानकारी प्राप्त करेंगे।
यह मानक मेटाडेटा के लिए एक शॉउटकास्ट या हिमकास्ट स्ट्रीम द्वारा भेजा गया मामला है। (दूसरों के लिए नहीं कह सकता क्योंकि मैंने उन्हें नहीं देखा है)
ध्यान दें कि प्रत्येक स्ट्रीम विभिन्न मेटाडेटा को संभाल और भेज सकती है। के बाद से [streamAudioPlayer timedMetadata] एक NSArray है आप कर सकते हैं
NSArray *metaArray = [streamAudioPlayer timedMetadata];
NSLog (@"%i", [metaArray count]); //to see how many elements in the array
MPTimedMetadata *firstMeta = [[streamAudioPlayer timedMetadata] objectAtIndex:0];
उपयोग तो डिबग सांत्वना कुंजी, keyspace, टाइमस्टैम्प, मूल्य गुणों का उपयोग करके मेटाडाटा की सामग्री को दिखाने के लिए।
उपरोक्त सभी एक उदाहरण है। मेटाडेटा को संभालने का कोई भी तरीका नहीं है। विस्तृत जानकारी
https://developer.apple.com/library/ios/#DOCUMENTATION/MediaPlayer/Reference/MPTimedMetadata_Class/Reference/Reference.html
MPTimedMetadata वर्ग संदर्भ के लिए
में और वहाँ से पाया जा सकता है ... पर कोड!
कमाल !!! धन्यवाद! – Genevios
हाय ... चार साल बाद, लेकिन फिर भी, क्या मैं पूछ सकता हूं ... क्या कोई ऐसा मामला है जहां 'timedMetadata' विधि एक से अधिक 'MPTimedMetadata' उदाहरण के साथ एक सरणी लौटाती है? अभी मैं उन सभी को प्राप्त करने के लिए 'इन-इन' लूप का उपयोग कर रहा हूं, लेकिन मैं सोच रहा हूं कि सरणी के पहले तत्व का उपयोग करने के बजाय यह वास्तव में आवश्यक है या नहीं। धन्यवाद! –
तकनीकी रूप से बोल रहा है ... यह हो सकता है। इसके लिए या तो एक कस्टम-संकलित आइसकास्ट संस्करण या एक नया शूकास्ट/आइसकास्ट रिलीज की आवश्यकता होगी जो इसे बदलता है। विशेष मामलों पर, यह * संभवतः स्टेशन के * वेब * पते के साथ एक दूसरी वस्तु वापस कर सकता है।मेरे अनुभव में, मैं 100% निश्चित हूं कि मानक शॉउटकास्ट/आइसकास्ट सर्वरों में पहले (इंडेक्स 0) ऑब्जेक्ट पर मेटाडेटा होगा। – Pericles