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

來源:互聯網
上載者:User

第二個題目是我的播放器,可以播放音頻和視頻。其實略懂電腦多媒體技術的人都清楚,音頻和視頻的差異具體是體現在檔案格式上的。不同的音頻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();      }    }

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.