public async Task StateChanged() { var media = new Media(new Instance(), RealMediaPath, Media.FromType.FromPath); var tcs = new TaskCompletionSource <bool>(); var openingCalled = false; media.EventManager.StateChanged += (sender, args) => { if (media.State == VLCState.Opening) { openingCalled = true; return; } Assert.AreEqual(VLCState.Playing, media.State); tcs.SetResult(true); }; var mp = new MediaPlayer(media); mp.Play(); await tcs.Task; Assert.True(tcs.Task.Result); Assert.True(openingCalled); }
public void SubItemTreeAdded() { var media = new Media(new Instance(), RealMediaPath, Media.FromType.FromPath); //TODO: Implement MediaList.cs Assert.Fail(); }
public void Duplicate() { var media = new Media(new Instance(), new FileStream(Path.GetTempFileName(), FileMode.OpenOrCreate)); var duplicate = media.Duplicate(); Assert.AreNotEqual(duplicate.NativeReference, media.NativeReference); }
public void CreateMedia() { var instance = new Instance(); var media = new Media(instance, Path.GetTempFileName(), Media.FromType.FromPath); Assert.AreNotEqual(IntPtr.Zero, media.NativeReference); }
public void ReleaseMedia() { var media = new Media(new Instance(), Path.GetTempFileName(), Media.FromType.FromPath); media.Dispose(); Assert.AreEqual(IntPtr.Zero, media.NativeReference); }
public void CreateMediaFromFileStream() { // TODO: fix this. var media = new Media(new Instance(), new FileStream(RealMediaPath, FileMode.Open, FileAccess.Read, FileShare.Read)); media.Parse(); Assert.NotZero(media.Tracks.First().Data.Audio.Channels); }
public void SetMetadata() { var media = new Media(new Instance(), Path.GetTempFileName(), Media.FromType.FromPath); const string test = "test"; media.SetMeta(Media.MetadataType.ShowName, test); Assert.True(media.SaveMeta()); Assert.AreEqual(test, media.Meta(Media.MetadataType.ShowName)); }
static void Main(string[] args) { var instance = new Instance(); var media = new Media(instance, "http://www.quirksmode.org/html5/videos/big_buck_bunny.mp4", Media.FromType.FromLocation); var mp = new MediaPlayer(media); mp.Play(); Console.ReadKey(); }
public void FreedMedia() { var media = new Media(new Instance(), RealMediaPath, Media.FromType.FromPath); var eventCalled = false; media.EventManager.MediaFreed += (sender, args) => { eventCalled = true; }; media.Dispose(); Assert.True(eventCalled); }
public void CreateRealMedia() { var instance = new Instance(); var media = new Media(instance, RealMediaPath, Media.FromType.FromPath); Assert.False(media.IsParsed); media.Parse(); //await media.ParseAsync(); Assert.True(media.IsParsed); Assert.NotZero(media.Duration); Assert.NotZero(media.Tracks.First().Data.Audio.Channels); Assert.AreEqual(Media.MediaParsedStatus.Done, media.ParsedStatus); Assert.AreEqual(Media.MediaType.File, media.Type); }
public void MetaChangedEventSubscribe() { var media = new Media(new Instance(), Path.GetTempFileName(), Media.FromType.FromPath); var eventManager = media.EventManager; var eventHandlerCalled = false; const Media.MetadataType description = Media.MetadataType.Description; eventManager.MetaChanged += (sender, args) => { Assert.AreEqual(description, args.MetadataType); eventHandlerCalled = true; }; media.SetMeta(Media.MetadataType.Description, "test"); Assert.True(eventHandlerCalled); }
public async Task Play() { var instance = new Instance(); var media = new Media(instance, "http://www.quirksmode.org/html5/videos/big_buck_bunny.mp4", Media.FromType.FromLocation); var mp = new MediaPlayer(media); var called = false; mp.EventManager.Playing += (sender, args) => { called = true; }; mp.Play(); await Task.Delay(5000); Assert.True(called); Assert.True(mp.IsPlaying); }
public void DurationChanged() { var media = new Media(new Instance(), RealMediaPath, Media.FromType.FromPath); var called = false; long duration = 0; media.EventManager.DurationChanged += (sender, args) => { called = true; duration = args.Duration; }; media.Parse(); Assert.True(called); Assert.NotZero(duration); }
public static int Main(string[] args) { string[] argv = new string[]{ "-vv", "-I", "dummy", "--plugin-path=../../modules" }; Console.WriteLine ("Running on LibVLC {0} ({1})", VLC.Version, VLC.ChangeSet); Console.WriteLine (" (compiled with {0})", VLC.Compiler); VLC vlc = new VLC (argv); foreach (string mrl in args) { Media media = new Media (vlc, mrl); Player player = new Player (media); DumpMedia (media); DumpMedia ((Media)media.Clone ()); media.StateChanged += WriteMediaState; /*foreach (MetaType type in Enum.GetValues (typeof (MetaType))) { string meta = media.GetMeta (type); if (meta != null) Console.WriteLine (" {0}: {1}", type, meta); }*/ player.Play (); do { DumpPlayer (player); Sleep (500); } while (player.IsPlaying); player.Stop (); media.Dispose (); player.Dispose (); } vlc.Dispose (); return 0; }
public void SubItemAdded() { // FIXME var instance = new Instance(); var media = new Media(instance, RealMediaPath, Media.FromType.FromPath); var subItem = new Media(instance, Path.GetTempFileName(), Media.FromType.FromPath); var eventManager = media.EventManager; var eventHandlerCalled = false; eventManager.SubItemAdded += (sender, args) => { Assert.AreEqual(subItem, args.SubItem); eventHandlerCalled = true; }; media.SubItems.Lock(); Assert.True(media.SubItems.AddMedia(subItem)); media.SubItems.Unlock(); Assert.True(eventHandlerCalled); }
public void AddAndRemoveMediaFromMediaList() { var instance = new Instance(); var mediaList = new MediaList(instance); var media = new Media(instance, Path.GetTempFileName(), Media.FromType.FromPath); var itemAdded = false; var itemDeleted = false; mediaList.EventManager.ItemAdded += (sender, args) => itemAdded = true; mediaList.EventManager.ItemDeleted += (sender, args) => itemDeleted = true; mediaList.Lock(); mediaList.AddMedia(media); Assert.AreEqual(media, mediaList[0]); Assert.AreEqual(1, mediaList.Count); Assert.True(itemAdded); Assert.Zero(mediaList.IndexOf(media)); mediaList.RemoveIndex(0); Assert.Zero(mediaList.Count); Assert.True(itemDeleted); mediaList.Unlock(); }
public async Task TrackDescription() { var instance = new Instance(); var mp = new MediaPlayer(instance); var media = new Media(instance, "http://www.quirksmode.org/html5/videos/big_buck_bunny.mp4", Media.FromType.FromLocation); var tcs = new TaskCompletionSource <bool>(); mp.Media = media; mp.Play(); mp.EventManager.Playing += (sender, args) => { Assert.Zero(mp.AudioTrack); var description = mp.AudioTrackDescription; Assert.True(mp.SetAudioTrack(description.First().Id)); Assert.IsNotEmpty(description); tcs.SetResult(true); }; await tcs.Task; Assert.True(tcs.Task.Result); }
/** * Creates a player object for a given a media. * * @param media media object */ public Player(Media media) { this.media = media; handle = LibVLC.PlayerCreateFromMedia(media.Handle, ex); Raise(); }
/// <summary> /// Get subitems of media descriptor object. /// </summary> /// <param name="media"></param> public MediaList(Media media) : base(() => Native.LibVLCMediaSubitems(media.NativeReference), Native.LibVLCMediaListRelease) { }
/// <summary> /// Associate media instance with this media list instance. If another /// media instance was present it will be released. The /// MediaList lock should NOT be held upon entering this function. /// </summary> /// <param name="media">media instance to add</param> public void SetMedia(Media media) { Native.LibVLCMediaListSetMedia(NativeReference, media.NativeReference); }
public void AddOption() { var media = new Media(new Instance(), new FileStream(Path.GetTempFileName(), FileMode.OpenOrCreate)); media.AddOption("-sout-all"); }
Media media; /**< Active media */ #endregion Fields #region Constructors /** * Creates a player with no medias. * An input media will be needed before this media player can be used. * * @param instance VLC instance */ public Player(VLC instance) { this.media = null; handle = LibVLC.PlayerCreate (instance.Handle, ex); Raise (); }
public void CreateMediaFromStream() { var media = new Media(new Instance(), new FileStream(Path.GetTempFileName(), FileMode.OpenOrCreate)); Assert.AreNotEqual(IntPtr.Zero, media.NativeReference); }
/** * Creates a player object for a given a media. * * @param media media object */ public Player(Media media) { this.media = media; handle = LibVLC.PlayerCreateFromMedia (media.Handle, ex); Raise (); }
/** * Creates a player with no medias. * An input media will be needed before this media player can be used. * * @param instance VLC instance */ public Player(VLC instance) { this.media = null; handle = LibVLC.PlayerCreate(instance.Handle, ex); Raise(); }
private static void WriteMediaState(Media m, State s) { Console.WriteLine (" -> {0}", s); }
private static void DumpMedia(Media m) { Console.WriteLine ("Media: {0} {1} (duration: {2}, {3}preparsed)", m.State, m.Location, m.Duration, m.IsPreparsed ? "" : "not "); }