locked
請問在Windows Form使用media player 的問題 RRS feed

  • 問題

  • 請教一下, 我在 windows form 內使用media player 遇到兩個問題, 

    1. 在設計模式下, 按鈕是在media player的外面, 但當執行時, 按鈕(播放) 會變成在 media player  裡面, 

    請問這要如何解決 ?

    2. 因為需要於播放完後, 執行某動作, 所以去查了一下, 可以使用 WMPPlayState.wmppsMediaEnded 此狀態去判斷

    但不論是將 bar直接拉到影片結束, 或讓影片播放到結束, 卻永遠達不到該狀態

    但會觸發 WMPPlayState.wmppsStopped 狀態

    以下是程式碼

    private void btnPlay_Click(object sender, EventArgs e)
            {
                this.axWindowsMediaPlayer1.URL = string.Format(@"C:\workarea\test.mp4");
                timer1.Enabled = true;
                timer1.Interval = 100;
            }
    
            private void timer1_Tick(object sender, EventArgs e)
            {
                if (axWindowsMediaPlayer1.playState == WMPLib.WMPPlayState.wmppsMediaEnded)
                {
                    int a = 1;
                    timer1.Enabled = false;
                }
                // 以下 code 用來看播放完畢時的狀態, 發現為 undefined
                if (axWindowsMediaPlayer1.playState != WMPLib.WMPPlayState.wmppsPlaying)
                {
                    int c = 1;
                }
                //    if (axWindowsMediaPlayer1.playState == WMPLib.WMPPlayState.wmppsStopped)
                //{
                //    int b = 1;
                //    timer1.Enabled=false;
                //}
    
            }


    請問這是何狀況 ? 如何解決 ?  謝謝

    2022年6月21日 上午 02:45

解答

  • 用 Layout 元件去排版,或是改成 100%

    這是桌面字型解析度問題。Media Player 是傳統元件,對於高 DPI 的桌面字型解析度相容並不高。


    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    • 已標示為解答 MIS110 2022年6月30日 下午 02:17
    2022年6月21日 上午 11:49

所有回覆