public VlcMediaInstance CreateNewMediaFromStream(Stream stream)
        {
            if (stream == null)
            {
                throw new ArgumentNullException(nameof(stream));
            }

            if (VlcVersionNumber.Major < 3)
            {
                throw new InvalidOperationException("You need VLC version 3.0 or higher to be able to use CreateNewMediaFromStream");
            }

            IntPtr opaque = AddStream(stream);

            if (opaque == IntPtr.Zero)
            {
                return(null);
            }

            var result = VlcMediaInstance.New(this, GetInteropDelegate <CreateNewMediaFromCallbacks>().Invoke(
                                                  myVlcInstance,
                                                  CallbackOpenMediaDelegate,
                                                  CallbackReadMediaDelegate,
                                                  CallbackSeekMediaDelegate,
                                                  CallbackCloseMediaDelegate,
                                                  opaque
                                                  ));

            return(result);
        }
 public VlcMediaInstance GetMediaFromMediaPlayer(VlcMediaPlayerInstance mediaPlayerInstance)
 {
     if (mediaPlayerInstance == IntPtr.Zero)
     {
         throw new ArgumentException("Media player instance is not initialized.");
     }
     return(VlcMediaInstance.New(this, GetInteropDelegate <GetMediaFromMediaPlayer>().Invoke(mediaPlayerInstance)));
 }
예제 #3
0
 public VlcMediaInstance CloneMedia(VlcMediaInstance mediaInstance)
 {
     if (mediaInstance == IntPtr.Zero)
     {
         throw new ArgumentException("Media instance is not initialized.");
     }
     return(VlcMediaInstance.New(this, GetInteropDelegate <CloneMedia>().Invoke(mediaInstance)));
 }
예제 #4
0
        public VlcMediaInstance CreateNewMediaFromLocation(string mrl)
        {
            EnsureVlcInstance();

            using (var handle = Utf8InteropStringConverter.ToUtf8StringHandle(mrl))
            {
                return(VlcMediaInstance.New(this, GetInteropDelegate <CreateNewMediaFromLocation>().Invoke(myVlcInstance, handle)));
            }
        }
        public VlcMediaInstance CreateNewMediaFromFileDescriptor(int fileDescriptor)
        {
            EnsureVlcInstance();

            return(VlcMediaInstance.New(this, GetInteropDelegate <CreateNewMediaFromFileDescriptor>().Invoke(myVlcInstance, fileDescriptor)));
        }