[C#][VB.NET]使用AxMediaPlayer撥放多媒體

  • 34400
  • 0
  • C#
  • 2009-09-13

使用AxMediaPlayer撥放多媒體

加入工具箱

Step1.工具箱=>滑鼠右鍵=>選擇項目

image 

 

Step2.切換至『COM 元件』頁籤並按下瀏覽鍵。

image 

 

Step3.找到Windows\System32下的msdxm.ocx檔後按下開啟鍵。

image 

 

Step4.會看到多了一個Windows Media Player的Com元件,此時勾選並按下確定鍵。

image 

 

Step5.會發現工具箱多了個Windows Media Player的控制項

image

 

使用AxMediaPlayer撥放多媒體

Step1.加入Windows Media Player控制項到設計表單,可看到如下的畫面。

image 

 

Step2.依序加入控制項使介面如下圖所示。

image 

 

Step3.撰寫控制項初始設定程式碼

此處是設定控制項的初始值,像是音量的最大值、最小值與目前的音量,值得注意的是AxMediaPlayer控制項的音量大小好像介於-10000~0之間,另外若不設定AutoStart = False則開啟檔案完程式就會自動撥放開啟的多媒體檔。

VB.NET

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.AxMediaPlayer1.AutoStart = False              '設定不自動撥放
        Me.tbarVolume.Minimum = -10000                    '設定音量調整Bar最小值為最小音量值
        Me.tbarVolume.Maximum = 0                         '設定音量調整Bar最大值為最大音量值
        Me.tbarVolume.Value = Me.AxMediaPlayer1.Volume    '設定音量調整Bar目前值為目前音量值
    End Sub

 

C#

        private void Form1_Load(object sender, EventArgs e)
        {
            this.axMediaPlayer1.AutoStart = false;              //設定不自動撥放
            this.tbarVolume.Minimum = -10000;                   //設定音量調整Bar最小值為最小音量值(-10000)
            this.tbarVolume.Maximum = 0;                        //設定音量調整Bar最大值為最大音量值(0)
            this.tbarVolume.Value = this.axMediaPlayer1.Volume; //設定音量調整Bar目前值為目前音量值
        }

 

Step4.撰寫開啟程式碼

AxMediaPlayer控制項的開啟可以直接設定FileName,亦可以使用Open函式。這邊除了開啟檔案外也需順道設定撥放位置的最大值與最小值。

VB.NET

    Private Sub btnOpen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOpen.Click
        If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
            'Me.AxMediaPlayer1.Open(OpenFileDialog1.FileName)
            Me.AxMediaPlayer1.FileName = OpenFileDialog1.FileName               '開啟檔案
            Me.tbarPlayLoaction.Minimum = CInt(Me.AxMediaPlayer1.SelectionStart)       '設定撥放位置調整Bar最小值
            Me.tbarPlayLoaction.Maximum = CInt(Me.AxMediaPlayer1.SelectionEnd)         '設定撥放位置調整Bar最大值
        End If
    End Sub

  

C#

        private void btnOpen_Click(object sender, EventArgs e)
        {
            if (openFileDialog1.ShowDialog() == DialogResult.OK) {
                //this.axMediaPlayer1.Open(openFileDialog1.FileName);
                this.axMediaPlayer1.FileName = openFileDialog1.FileName;                    //開啟檔案
                this.tbarPlayLoaction.Minimum = (int)this.axMediaPlayer1.SelectionStart;    //設定撥放位置調整Bar最小值
                this.tbarPlayLoaction.Maximum = (int)this.axMediaPlayer1.SelectionEnd;      //設定撥放位置調整Bar最大值
            }
        }

 

Step5.撰寫撥放程式碼

撰寫這部份功能程式碼只需呼叫AxMediaPlayer.Play()即可。

VB.NET

    Private Sub btnPlay_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPlay.Click
        Me.AxMediaPlayer1.Play()        '撥放
    End Sub

 

C#

        private void btnPlay_Click(object sender, EventArgs e)
        {
            this.axMediaPlayer1.Play();        //撥放
        }

   

 

 

Step6.撰寫停止程式碼

這邊需注意的是,AxMediaPlayer控制項的Stop函式雖然會停止撥放,但是停止後撥放位置仍維持在原位,因此當又按下撥放時,該控制項會從上次位置繼續撥放,有點類似暫停的功能(跟暫停的差異在於它會按下控制項上的Stop按鈕),因此這邊須自行把撥放位置設回起始點。

VB.NET

    Private Sub btnStop_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStop.Click
        Me.AxMediaPlayer1.Stop()                '停止
        AxMediaPlayer1.CurrentPosition = 0      '把撥放位置設回起點
    End Sub
 

C#

        private void btnStop_Click(object sender, EventArgs e)
        {
            this.axMediaPlayer1.Stop();                     //停止
            this.axMediaPlayer1.CurrentPosition = 0;        //把撥放位置設回起點
        }

  

Step7.撰寫暫停撥放程式碼

撰寫這部份功能程式碼只需呼叫AxMediaPlayer.Pause()即可。

VB.NET

    Private Sub btnPause_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPause.Click
        Me.AxMediaPlayer1.Pause()       '暫停撥放
    End Sub

 

C#

        private void btnPause_Click(object sender, EventArgs e)
        {
            this.axMediaPlayer1.Pause();       //暫停撥放
        }

 

Step8.撰寫音量控制程式碼

這部份功能程式碼只需對AxMediaPlayer.Volume做屬性值的變更即可。

VB.NET

    Private Sub tbarVolume_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tbarVolume.Scroll
        Me.AxMediaPlayer1.Volume = tbarVolume.Value                     '改變音量大小
    End Sub
 
    Private Sub btnIncreaseVolume_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnIncreaseVolume.Click
        Me.AxMediaPlayer1.Volume += 1       '音量大小+1
    End Sub
 
    Private Sub btnDecreaseVolume_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDecreaseVolume.Click
        Me.AxMediaPlayer1.Volume -= 1       '音量大小-1
    End Sub

 

C#

        private void tbarVolume_Scroll(object sender, EventArgs e)
        {
            this.axMediaPlayer1.Volume = tbarVolume.Value;                     //改變音量大小
        }
 
        private void btnIncreaseVolume_Click(object sender, EventArgs e)
        {
            this.axMediaPlayer1.Volume += 1;       //音量大小+1
        }
 
        private void btnDecreaseVolume_Click(object sender, EventArgs e)
        {
            this.axMediaPlayer1.Volume -= 1;       //音量大小-1
        }

  

 Step9.撰寫撥放位置控制程式碼

這部份功能程式碼只需對AxMediaPlayer.CurrentPosition做屬性值的變更即可。

VB.NET

    Private Sub tbarPlayLoaction_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tbarPlayLoaction.Scroll
        Me.AxMediaPlayer1.CurrentPosition = tbarPlayLoaction.Value          '改變撥放位置
    End Sub

 

C#

        private void tbarPlayLoaction_Scroll(object sender, EventArgs e)
        {
            this.axMediaPlayer1.CurrentPosition = tbarPlayLoaction.Value;          //改變撥放位置
        }

 

Download

使用AxMediaPlayer撥放多媒體.zip

 

 

 

參考連結

  1. 藍色小鋪 - media 播放設定問題
  2. 如何使用 Visual Basic.NET 或 Visual Basic 2005 中播放音訊檔案