Ejemplo n.º 1
0
        /**
         * Create a new native media instance.
         *
         * @param media media resource locator
         * @param mediaOptions zero or more media options
         * @return native media instance
         */
        private IntPtr newMediaDescriptor(string media, params string[] mediaOptions)
        {
            Logger.Debug("newMediaDescriptor(media={},mediaOptions={})", media, mediaOptions);
            IntPtr mediaPointer  = NativeString.StringPointer(media);
            IntPtr mediaInstance = IntPtr.Zero;

            if (mediaPointer != IntPtr.Zero)
            {
                try {
                    mediaInstance = LibVlc.libvlc_media_new_path(instance, mediaPointer);
                    Logger.Debug("mediaDescriptor={}", mediaInstance);
                    if (mediaListInstance != IntPtr.Zero)
                    {
                        // Set the standard media options (if any)...
                        AddMediaOptions(mediaInstance, standardMediaOptions); // FIXME handle return false?
                        // Set the particular media options (if any)...
                        AddMediaOptions(mediaInstance, mediaOptions);         // FIXME handle return false?
                    }
                }
                finally {
                    NativeString.Release(mediaPointer);
                }
            }
            return(mediaInstance);
        }
Ejemplo n.º 2
0
        public void Play(string mediaPath, IntPtr hWnd)
        {
            if (!playing)
            {
                IntPtr media = LibVlc.libvlc_media_new_path(instance, mediaPath);
                player = LibVlc.libvlc_media_player_new_from_media(media);

                LibVlc.libvlc_media_release(media);
                LibVlc.libvlc_media_player_set_hwnd(player, hWnd);
                LibVlc.libvlc_media_player_play(player);

                playing = true;
            }
            else
            {
                throw new InvalidOperationException("VLC is currently playing media");
            }
        }