1. 程式人生 > >LibVLC.NET 與WPF繫結播放器

LibVLC.NET 與WPF繫結播放器


先決條件



LibVLC.NET提供.NET繫結到VLC媒體播放器的LibVLC核心庫(libVLC)。由於使用了一些更新的LibVLC功能,LibVLC.NET需要VLC版本1.2,可以在這裡下載。


如果您已將VLC媒體播放器(1.2)安裝在其預設位置(例如C:\ Program Files(x86)\ VideoLAN \ VLC),那麼LibVLC.NET應該可以直接使用。 要使用libVLC的本地副本,將檔案libvlc.dll,libvlccore.dll和資料夾外掛複製到名為VLC的資料夾中,以將其應用到您的位置。 您也可以在執行時指定libVLC DLL的目錄,並提供您自己的目錄。


本地繫結



移植到LibVLC.NET / C#的http://wiki.videolan.org/LibVLC_Tutorial#Sample_LibVLC_Code的libVLC教程如下所示:
using System;
using System.Threading;
using LibVLC.NET;

class Program
{
  static void Main()
  {
    LibVLCLibrary library = LibVLCLibrary.Load(null);
    IntPtr inst, mp, m;

    inst = library.libvlc_new();                                      // Load the VLC engine 
    m = library.libvlc_media_new_location(inst, "path/to/your/file"); // Create a new item 
    mp = library.libvlc_media_player_new_from_media(m);               // Create a media player playing environement 
    library.libvlc_media_release(m);                                  // No need to keep the media now 
    library.libvlc_media_player_play(mp);                             // play the media_player 
    Thread.Sleep(10000);                                              // Let it play a bit 
    library.libvlc_media_player_stop(mp);                             // Stop playing 
    library.libvlc_media_player_release(mp);                          // Free the media_player 
    library.libvlc_release(inst);

    LibVLCLibrary.Free(library);
  }
}
本教程包含在解決方案資料夾“Tests”中的專案教程中。

WPF繫結


LibVLC.NET.Presentation提供可用於播放媒體的元素MediaElement:
xmlns:vlc="clr-namespace:LibVLC.NET.Presentation;assembly=LibVLC.NET.Presentation"

...

<vlc:MediaElement Source="file://path/to/my/file" />
可以通過呼叫MediaElement例項上的播放,暫停或停止等方法來控制播放。 MediaElement例項的屬性當然會在其排程器執行緒中更改; 但可能不會立即。


WPF示例可以在解決方案資料夾“Tests”的專案TestPresentation中找到。