Explorar o código

VLCMediaPlayer: expand the API by adding setter/getter for audio delay

Felix Paul Kühne %!s(int64=12) %!d(string=hai) anos
pai
achega
0ad3f78e61
Modificáronse 2 ficheiros con 24 adicións e 1 borrados
  1. 8 0
      Headers/Public/VLCMediaPlayer.h
  2. 16 1
      Sources/VLCMediaPlayer.m

+ 8 - 0
Headers/Public/VLCMediaPlayer.h

@@ -260,6 +260,14 @@ extern NSString * VLCMediaPlayerStateToString(VLCMediaPlayerState state);
 - (void)setAudioChannel:(NSInteger)value;
 - (NSInteger)audioChannel;
 
+/**
+ * Get the current audio delay. Positive values means audio is delayed further,
+ * negative values less.
+ *
+ * \return time (in microseconds) the audio playback is being delayed
+ */
+@property (readwrite) NSInteger currentAudioPlaybackDelay;
+
 /* Media Options */
 - (void)setMedia:(VLCMedia *)value;
 - (VLCMedia *)media;

+ 16 - 1
Sources/VLCMediaPlayer.m

@@ -353,7 +353,6 @@ static void HandleMediaPlayerMediaChanged(const libvlc_event_t * event, void * s
     return libvlc_video_get_spu_delay(instance);
 }
 
-
 #pragma mark -
 #pragma mark Video Crop geometry
 
@@ -569,6 +568,19 @@ static void HandleMediaPlayerMediaChanged(const libvlc_event_t * event, void * s
     return libvlc_audio_get_channel(instance);
 }
 
+- (void)setCurrentAudioPlaybackDelay:(NSInteger)index
+{
+    libvlc_audio_set_delay(instance, index);
+}
+
+- (NSInteger)currentAudioPlaybackDelay
+{
+    return libvlc_audio_get_delay(instance);
+}
+
+#pragma mark -
+#pragma mark set/get media
+
 - (void)setMedia:(VLCMedia *)value
 {
     if (media != value)
@@ -588,6 +600,9 @@ static void HandleMediaPlayerMediaChanged(const libvlc_event_t * event, void * s
     return media;
 }
 
+#pragma mark -
+#pragma mark playback
+
 - (BOOL)play
 {
     libvlc_media_player_play(instance);