0

私は再び私の練習に少し立ち往生しています。プログラムを開いたときに MP3 ファイルを再生したいのですが、再生できます。音楽を一時停止できるチェックボックスも必要です - しかし、私は非常に疲れているか、物事がうまくいかない - チェック/チェックを外しても何も起こりません. 私はこのようにしました:

public void PlayPause(int Status)
     {
        WMPLib.WindowsMediaPlayer wmp = new WMPLib.WindowsMediaPlayer();
        switch (Status)
        {
            case 0:
                wmp.URL = "Musik.mp3";
                break;
            case 1:
                wmp.controls.play();
                break;
            case 2:
                wmp.controls.pause();
                break;
        }
    }

プログラムを開くと、case 0 でメソッドが呼び出されます。音楽が再生されます。すべて良い。ただし、これは機能しません。非常に単純なコードであるため、理由がわかりません。

        public void checkBox1_CheckedChanged(object sender, EventArgs e)
    {
        if (checkBox1.Checked == true)
        {
            PlayPause(2);
        }
        else if (checkBox1.Checked == false)
        {
            PlayPause(1);
        }
    }

チェックボックスをオンにしても音楽が一時停止/一時停止解除されない理由について何か考えはありますか?

4

2 に答える 2

6

その PlayPause 関数を呼び出すたびに、まったく新しい WindowsMediaPlayer オブジェクトをインスタンス化しています。

したがって、後で一時停止を呼び出すと、何も一時停止していません。

同じオブジェクトを操作できるように、その WMP オブジェクトへの参照を保持または渡す必要があります。

于 2012-06-22T22:37:06.257 に答える
1

PlayPause を呼び出すたびに、新しいメディア プレーヤーを作成しているためです。コンストラクターで作成すれば問題ありません。

于 2012-06-22T22:37:32.600 に答える