質問があります。リストボックスにリストされているアイテムに基づいてaxmediaplayerを再生するためにこのコードを作成しました。まず、opendialogを使用してリストを作成するために、このコードを作成します。
private string[] files, path;
private void button1_Click(object sender, EventArgs e)
{
if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
files = openFileDialog1.SafeFileNames;
path = openFileDialog1.FileNames;
for (int i = 0; i < files.Length; i++) {
listBox1.Items.Add(files[i]);
}
}
}
次に、次のコードを使用して、リストボックスのインデックスが変更されたとき(リストボックスの項目が気に入ったとき)に音楽を再生します。
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
axWindowsMediaPlayer1.URL = path[listBox1.SelectedIndex];
}
それはうまく機能し、それから私はプレーヤーが私のリストボックスのアイテムの次の曲ベースに自動移動することを望みます。イベントPlayStateChangeを使用して、このコードを作成します
private void axWindowsMediaPlayer1_PlayStateChange(object sender, AxWMPLib._WMPOCXEvents_PlayStateChangeEvent e)
{
if (axWindowsMediaPlayer1.playState == WMPLib.WMPPlayState.wmppsMediaEnded)
{
if(listBox1.SelectedIndex < files.Length - 1)
{
listBox1.SelectedIndex = listBox1.SelectedIndex + 1;
}
}
}
選択したインデックスは変更されますが、プレーヤーは次の曲を自動再生しません。リストを再生するには、手動で再生ボタンをクリックする必要があります。誰かが私を助けることができますか?