Explorar el Código

VLCMedia: add delegate method called when media's meta data is changed independently if this was done by preparsing or not

Felix Paul Kühne hace 11 años
padre
commit
55461fb6a4
Se han modificado 3 ficheros con 16 adiciones y 1 borrados
  1. 8 1
      Headers/Public/VLCMedia.h
  2. 5 0
      NEWS
  3. 3 0
      Sources/VLCMedia.m

+ 8 - 1
Headers/Public/VLCMedia.h

@@ -97,7 +97,14 @@ typedef NSInteger VLCMediaState;
  * \param oldValue The old meta data value.
  * \param key The key of the value that was changed.
  */
-- (void)media:(VLCMedia *)aMedia metaValueChangedFrom:(id)oldValue forKey:(NSString *)key;
+- (void)media:(VLCMedia *)aMedia metaValueChangedFrom:(id)oldValue forKey:(NSString *)key __attribute__((deprecated));
+
+/**
+ * Delegate method called whenever the media's meta data was changed for whatever reason
+ * \note this is called more often than mediaDidFinishParsing, so it may be less efficient
+ * \param aMedia The media resource whose meta data has been changed.
+ */
+- (void)mediaMetaDataDidChange:(VLCMedia *)aMedia;
 
 /**
  * Delegate method called whenever the media was parsed.

+ 5 - 0
NEWS

@@ -24,11 +24,16 @@ New APIs:
   - added initWithOptions selector matching VLCMediaPlayer's implementation
   - added pause selector
   - added previous, next and playItemAtIndex selectors
+- VLCMedia:
+  - added delegate method mediaMetaDataDidChange
 
 Modified API behavior:
 - VLCMediaPlayer:
   - implementing mediaPlayerTimeChanged is now optional
 
+Deprecated APIs:
+- VLCMedia:
+  - media:metaValueChangedFrom:forKey:
 
 Changes within VLCKit between 2.0.0 and 2.1.0:
 ----------------------------------------------

+ 3 - 0
Sources/VLCMedia.m

@@ -906,6 +906,9 @@ NSString *const VLCMediaTracksInformationTextEncoding = @"encoding"; // NSString
 - (void)metaChanged:(NSString *)metaType
 {
     [self fetchMetaInformationFromLibVLCWithType:metaType];
+
+    if ([delegate respondsToSelector:@selector(mediaMetaDataDidChange:)])
+        [self.delegate mediaMetaDataDidChange:self];
 }
 
 - (void)subItemAdded