none
關於WindowsMediaPlayer的套件Duration RRS feed

  • 問題

  • 我運用OpenFileDialog去開啟檔案

    載入後馬上

    Ctlcontrols.play()

    現在想要抓音樂總長度

    我有找到屬性是currentMedia.duration

    所以我在載入播放的時候

    將讀出來得值存在其他變數身上

    但是我發現怎麼讀都是0

    我又做了一個函式

    去呼叫並讀值結果依然是0

    後來我又做了一個按鍵

    再去做讀值的動作 卻讀得出來...

    不曉得是什麼原因

    最後我為了要同時做到我要的效果只好使用player狀態改變的時候

    再寫入值

    是成功了!

    可是我想知道為何我最初沒辦法獲得我想要的結果


    • 已編輯 ChuangMaster 2012年6月3日 上午 07:34 改標題
    2012年6月3日 上午 07:34

解答

  • 應該是因為你在取得 Duration 值的時候, AxMediaPlayer 還沒有將媒體檔案或串流載入完成.

    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    • 已標示為解答 ChuangMaster 2012年6月3日 上午 09:30
    2012年6月3日 上午 07:56
    版主

所有回覆

  • 應該是因為你在取得 Duration 值的時候, AxMediaPlayer 還沒有將媒體檔案或串流載入完成.

    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    • 已標示為解答 ChuangMaster 2012年6月3日 上午 09:30
    2012年6月3日 上午 07:56
    版主
  • 但我發現改變狀態這樣寫 有時候會完全沒進去過!

    既使下了Ctlcontrols.play()

    但是依然沒進去

    Sub PlayStateChange() Handles Player1.StatusChange
            If Player1.playState = 3 Then
                vidrolong = Player1.currentMedia.duration
                Label4.Text = vidrolong
            End If
        End Sub 

    Bill大

    果然如你所述一樣!
    我又改寫將指派值的地方寫在一個按鈕的事件裡面

    然後再載入時產生事件

    可是依然是=0

    可是不知道有沒有比較好的改寫方式

    2012年6月3日 上午 08:26
  • 最後的方法一個timer計數器 讓整個程式晚點讀到 就搞定了...
    一個下午就這樣沒了 (汗
    2012年6月3日 上午 09:31