程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> 我的媒體播放器——多媒體編程

我的媒體播放器——多媒體編程

編輯:關於ASP.NET

第二個題目是我的播放器,可以播放音頻和視頻。其實略懂計算機多媒體技術的人都清楚,音頻和視頻的差異具體是體現在文件格式上的。不同的音頻mp3,midi,wav等其實是不同的編碼或者格式,同理不同的視頻avi,rm(rmvb),mov等其實也是不同的編碼格式,這些格式中,大多數都是不公開源代碼的,但是公開標准或者API接口。但編程調用依然很繁瑣,我們也沒有精力和能力去研究這些。

.Net本身不帶多媒體庫,但是具有與COM交互的強大能力。恰好,微軟DirectShow技術能滿足上述要求,而且可以跟.NET達到完美的結合。

DirectShow交互程序集是集成在DirectX中的,多數計算機都會有DirectX,微軟也提供下載。廢話少說,開始做吧。

第一,在項目中引用Interop.QuartzTypeLib.dll。這是DirectX的COM交互程序集,其實是個托管調用。其中的類庫和方法介紹最好還是看DirectX的SDK。這裡不班門弄斧了。

第二,播放打開的文件

    public void RenderMedia(string mediaFileName)
    {
      clearUp();
      try
      {
        objMedia = new FilgraphManager();
        objMedia.RenderFile(mediaFileName);
        volMedia = objMedia as IBasicAudio;
        posMedia = objMedia as IMediaPosition;
        ctlMedia = objMedia as IMediaControl;
        eexMedia = objMedia as IMediaEventEx;
        eexMedia.SetNotifyWindow((int)this.Handle, WM_GRAPHNOTIFY, 0);
        mediaStatus = 1;
        mediaDuration = posMedia.Duration;
        volMedia.Volume = mediaVolum;
        Play();
      }
      catch
      {
        MessageBox.Show("加載文件失敗!");
        clearUp();
      }
    }

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved