1

再生する必要があるすべてのメディア ファイルを含むリスト ボックスがあります。メディアプレーヤーを1つずつ再生するにはどうすればよいですか? このコードは 1 曲を再生しますが、foreach はすべてのファイルを再生することになっていますが、それはメディアが終了するまで待たないためだと思います..このコード:

Listbox = listBox3

listBox3Dict[s]= リストボックス内のすべてのファイルの文字列

            Dictionary<string, string> listBox3Dict = new Dictionary<string, string>();

>         private bool listbox3job()
>         {
>             AxWMPLib.AxWindowsMediaPlayer axWmp = wfh.Child as AxWMPLib.AxWindowsMediaPlayer;
>                 {
>                     foreach (var selected in listBox3.Items)
>                     {
>                         string s = selected.ToString();
> 
>                         if (listBox3Dict.ContainsKey(s))
>                         {
WMPLib.IWMPPlaylist playlist = axWindowsMediaPlayer1.newPlaylist("myPlaylist", string.Empty);
                            // you can add songs to url on for loop 
                            WMPLib.IWMPMedia temp = this.axWindowsMediaPlayer1.newMedia(listBox3Dict[s]); //Load media from URL. 
                            playlist.appendItem(temp); //Add song to playlist.
                            // after you add all songs set the new playlist
                            this.axWindowsMediaPlayer1.settings.autoStart = true; //not necessary
                            this.axWindowsMediaPlayer1.currentPlaylist = playlist; //Set media player to use the playlist.
>                         }
>                     }
> 
>                 return true;
>             }
>             return false;
>         }
4

2 に答える 2

3

あなたができることは、プレーヤーリストを作成し、そのリストの再生を開始することです

private bool listbox3job()
{

    AxWMPLib.AxWindowsMediaPlayer axWmp = wfh.Child as AxWMPLib.AxWindowsMediaPlayer;
    WMPLib.IWMPPlaylist playlist = axWmp.newPlaylist("myPlaylist", string.Empty);

    foreach (var selected in listBox1.Items)
    {
        string s = selected.ToString();
        if (listBox3Dict.ContainsKey(s))
        {
            WMPLib.IWMPMedia temp = axWmp.newMedia(listBox3Dict[s]); //Load media from URL. 
            playlist.appendItem(temp); //Add song to playlist.
        }
    }
    axWmp.settings.autoStart = true; //not necessary
    axWmp.currentPlaylist = playlist; //Set media player to use the playlist.
    return true;
}

http://www.timwylie.com/playlist.html

于 2013-04-19T07:56:56.843 に答える
0

以前、リスト内の一連の音声ファイルに取り組んでいました。PlayStateChange イベントを使用しました。このイベントから、再生ファイルをリスト内の次の項目に再割り当てできる MediaEnded 状態を見つけることができます。

于 2013-04-19T08:50:37.457 に答える