/** * 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); }
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"); } }