28 #import <Foundation/Foundation.h>
30 # import <CoreGraphics/CoreGraphics.h>
31 # import <UIKit/UIKit.h>
47 extern NSString *
const VLCMediaPlayerTimeChanged;
48 extern NSString *
const VLCMediaPlayerStateChanged;
49 extern NSString *
const VLCMediaPlayerTitleChanged;
50 extern NSString *
const VLCMediaPlayerChapterChanged;
51 extern NSString *
const VLCMediaPlayerLoudnessChanged;
56 typedef NS_ENUM(NSInteger, VLCMediaPlayerState)
58 VLCMediaPlayerStateStopped,
59 VLCMediaPlayerStateOpening,
60 VLCMediaPlayerStateBuffering,
61 VLCMediaPlayerStateEnded,
62 VLCMediaPlayerStateError,
63 VLCMediaPlayerStatePlaying,
64 VLCMediaPlayerStatePaused,
65 VLCMediaPlayerStateESAdded
71 typedef NS_ENUM(
unsigned, VLCMediaPlaybackNavigationAction)
73 VLCMediaPlaybackNavigationActionActivate = 0,
74 VLCMediaPlaybackNavigationActionUp,
75 VLCMediaPlaybackNavigationActionDown,
76 VLCMediaPlaybackNavigationActionLeft,
77 VLCMediaPlaybackNavigationActionRight
83 typedef NS_ENUM(NSInteger, VLCDeinterlace)
85 VLCDeinterlaceAuto = -1,
105 @property (readonly) int64_t
date;
114 extern NSString * VLCMediaPlayerStateToString(VLCMediaPlayerState state);
128 - (void)mediaPlayerStateChanged:(NSNotification *)aNotification;
135 - (void)mediaPlayerTimeChanged:(NSNotification *)aNotification;
143 - (void)mediaPlayerTitleChanged:(NSNotification *)aNotification;
150 - (void)mediaPlayerChapterChanged:(NSNotification *)aNotification;
157 - (void)mediaPlayerLoudnessChanged:(NSNotification *)aNotification;
164 - (void)mediaPlayerSnapshot:(NSNotification *)aNotification;
177 - (void)mediaPlayer:(
VLCMediaPlayer *)player recordingStoppedAtPath:(NSString *)path;
194 @property (weak, nonatomic) id<VLCMediaPlayerDelegate> delegate;
196 #if !TARGET_OS_IPHONE
203 - (instancetype)initWithVideoView:(
VLCVideoView *)aVideoView;
209 - (instancetype)initWithVideoLayer:(
VLCVideoLayer *)aVideoLayer;
216 - (instancetype)initWithOptions:(NSArray *)options;
223 - (instancetype)initWithLibVLCInstance:(
void *)playerInstance andLibrary:(
VLCLibrary *)library;
229 #pragma mark video functionality
231 #if !TARGET_OS_IPHONE
250 @property (strong)
id drawable;
260 @property (NS_NONATOMIC_IOSONLY)
char *videoAspectRatio;
268 @property (NS_NONATOMIC_IOSONLY)
char *videoCropGeometry;
279 @property (nonatomic)
float scaleFactor;
291 - (void)saveVideoSnapshotAt:(NSString *)path withWidth:(
int)width andHeight:(
int)height;
298 - (void)setDeinterlaceFilter: (NSString *)name;
306 - (void)setDeinterlace:(VLCDeinterlace)deinterlace withFilter:(NSString *)name;
313 @property (nonatomic) BOOL adjustFilterEnabled;
319 @property (nonatomic)
float contrast;
325 @property (nonatomic)
float brightness;
331 @property (nonatomic)
float hue;
337 @property (nonatomic)
float saturation;
343 @property (nonatomic)
float gamma;
353 @property (nonatomic)
float rate;
359 @property (nonatomic, readonly, weak)
VLCAudio * audio;
366 @property (NS_NONATOMIC_IOSONLY, readonly) CGSize videoSize;
374 @property (NS_NONATOMIC_IOSONLY, readonly) BOOL hasVideoOut;
381 @property (NS_NONATOMIC_IOSONLY, readonly)
float framesPerSecond
__attribute__((deprecated));
395 @property (NS_NONATOMIC_IOSONLY, strong)
VLCTime *time;
402 @property (nonatomic, readonly, weak)
VLCTime *remainingTime;
405 #pragma mark ES track handling
414 @property (readwrite)
int currentVideoTrackIndex;
420 @property (NS_NONATOMIC_IOSONLY, readonly, copy) NSArray *videoTrackNames;
426 @property (NS_NONATOMIC_IOSONLY, readonly, copy) NSArray *videoTrackIndexes;
432 @property (NS_NONATOMIC_IOSONLY, readonly)
int numberOfVideoTracks;
441 @property (readwrite)
int currentVideoSubTitleIndex;
447 @property (NS_NONATOMIC_IOSONLY, readonly, copy) NSArray *videoSubTitlesNames;
453 @property (NS_NONATOMIC_IOSONLY, readonly, copy) NSArray *videoSubTitlesIndexes;
459 @property (NS_NONATOMIC_IOSONLY, readonly)
int numberOfSubtitlesTracks;
466 - (BOOL)openVideoSubTitlesFromFile:(NSString *)path __attribute__((deprecated));
471 typedef NS_ENUM(
unsigned, VLCMediaPlaybackSlaveType)
473 VLCMediaPlaybackSlaveTypeSubtitle = 0,
474 VLCMediaPlaybackSlaveTypeAudio
485 - (int)addPlaybackSlave:(NSURL *)slaveURL type:(VLCMediaPlaybackSlaveType)slaveType enforce:(BOOL)enforceSelection;
493 @property (readwrite) NSInteger currentVideoSubTitleDelay;
504 @property (readwrite)
int currentChapterIndex;
508 - (void)previousChapter;
517 - (int)numberOfChaptersForTitle:(
int)titleIndex;
523 - (NSArray *)chaptersForTitleIndex:(
int)titleIndex __attribute__((deprecated));
548 - (NSArray *)chapterDescriptionsOfTitle:(
int)titleIndex;
554 @property (readwrite)
int currentTitleIndex;
559 @property (readonly)
int numberOfTitles;
570 @property (NS_NONATOMIC_IOSONLY, readonly, copy) NSArray *titles
__attribute__((deprecated));
594 @property (NS_NONATOMIC_IOSONLY, readonly, copy) NSArray *titleDescriptions;
600 @property (readonly)
int indexOfLongestTitle;
611 @property (readwrite)
int currentAudioTrackIndex;
617 @property (NS_NONATOMIC_IOSONLY, readonly, copy) NSArray *audioTrackNames;
623 @property (NS_NONATOMIC_IOSONLY, readonly, copy) NSArray *audioTrackIndexes;
629 @property (NS_NONATOMIC_IOSONLY, readonly)
int numberOfAudioTracks;
632 #pragma mark audio functionality
638 @property (NS_NONATOMIC_IOSONLY)
int audioChannel;
646 @property (readwrite) NSInteger currentAudioPlaybackDelay;
654 #pragma mark equalizer
663 @property (weak, readonly) NSArray *equalizerProfiles;
669 - (void)resetEqualizerFromProfile:(
unsigned)profile;
676 @property (readwrite) BOOL equalizerEnabled;
683 @property (readwrite) CGFloat preAmplification;
688 @property (readonly)
unsigned numberOfBands;
694 - (CGFloat)frequencyOfBandAtIndex:(
unsigned)index;
700 - (void)setAmplification:(CGFloat)amplification forBand:(
unsigned)index;
706 - (CGFloat)amplificationOfBand:(
unsigned)index;
709 #pragma mark media handling
715 @property (NS_NONATOMIC_IOSONLY, strong)
VLCMedia *media;
718 #pragma mark playback operations
739 - (void)gotoNextFrame;
750 - (void)fastForwardAtRate:(
float)rate;
761 - (void)rewindAtRate:(
float)rate;
767 - (void)jumpBackward:(
int)interval;
773 - (void)jumpForward:(
int)interval;
778 - (void)extraShortJumpBackward;
783 - (void)extraShortJumpForward;
788 - (void)shortJumpBackward;
793 - (void)shortJumpForward;
798 - (void)mediumJumpBackward;
803 - (void)mediumJumpForward;
808 - (void)longJumpBackward;
813 - (void)longJumpForward;
818 - (void)performNavigationAction:(VLCMediaPlaybackNavigationAction)action;
831 - (BOOL)updateViewpoint:(
float)yaw pitch:(
float)pitch roll:(
float)roll fov:(
float)fov absolute:(BOOL)absolute;
838 @property (nonatomic)
float yaw;
845 @property (nonatomic)
float pitch;
852 @property (nonatomic)
float roll;
859 @property (nonatomic)
float fov;
862 #pragma mark playback information
867 @property (NS_NONATOMIC_IOSONLY, getter=isPlaying, readonly) BOOL playing;
873 @property (NS_NONATOMIC_IOSONLY, readonly) BOOL willPlay;
879 @property (NS_NONATOMIC_IOSONLY, readonly) VLCMediaPlayerState state;
885 @property (NS_NONATOMIC_IOSONLY)
float position;
892 @property (NS_NONATOMIC_IOSONLY, getter=isSeekable, readonly) BOOL seekable;
898 @property (NS_NONATOMIC_IOSONLY, readonly) BOOL canPause;
905 @property (NS_NONATOMIC_IOSONLY, readonly, copy) NSArray *snapshots;
914 @property (NS_NONATOMIC_IOSONLY, readonly) UIImage *lastSnapshot;
922 @property (NS_NONATOMIC_IOSONLY, readonly) NSImage *lastSnapshot;
930 - (BOOL)startRecordingAtPath:(NSString *)path;
936 - (BOOL)stopRecording;
939 #pragma mark Renderer