Как связать несколько файлов в музыкальном проигрывателе в С#

Недавно я разработал музыкальный проигрыватель в С# WindowsFormsApplications.

Все идет хорошо только при выборе программы по умолчанию, она может открыть один музыкальный файл отлично, но при выборе 5 музыкальных файлов. 5 музыкальный проигрыватель открыт.

Как исправить это, чтобы открыть несколько файлов, когда вы устанавливаете его по умолчанию, как список воспроизведения в С#? И я не пробовал ничего или кода для этого. пожалуйста помоги!

это моя программа.cs

  static class Program
{
    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    [STAThread]
    static void Main(string[] args)
    {


        //with args(user open file with the program)
        if (args != null && args.Length > 0)
        {

            string fileName = args[0];
            //Check file exists
            if (File.Exists(fileName))
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Form1 MainFrom = new Form1();
                MainFrom.OpenFile(fileName);
                Application.Run(MainFrom);
            }
            //The file does not exist
            else
            {
                MessageBox.Show("The file does not exist!", "BMPlayer Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new Form1());
            }
        }
        //without args
        else
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
    }
}

И это Form1.cs для открытия файла

public void OpenFile(string filePath)
    {
        string file1 = File.ReadAllText(filePath);
        axWindowsMediaPlayer1.URL = filePath;
    }

person Mohsen    schedule 03.08.2017    source источник
comment
немного COde не повредит, как вы делаете свой выбор/загрузку? у вас есть какой-либо список заголовков в вашем приложении?   -  person MaxW    schedule 03.08.2017
comment
Поскольку вы показали 0 строк кода, я могу только предположить, что вас беспокоит. Я думаю, вы должны обрабатывать несколько имен файлов в методе Main вашего приложения (в Program.cs)   -  person Nino    schedule 03.08.2017
comment
этот код работает для одного файла   -  person Mohsen    schedule 03.08.2017
comment
нужно активировать многофайловый выбор   -  person MaxW    schedule 03.08.2017
comment
нет возможности активировать многофайловый выбор   -  person Mohsen    schedule 03.08.2017


Ответы (1)


Лучший подход для вас - это создать новый тип файла (список воспроизведения) и получить его в качестве параметра в своем приложении, после чего вы можете управлять этим файлом внутри своего приложения, добавляя/удаляя песни из этого списка воспроизведения. Хороший подход - хранить контент в формате JSON. затем вы можете легко управлять контентом с помощью пакетов Nuget, например: NewtonSoft.

Я создал простой пример кода, после чего вы можете создавать свои плейлисты и управлять ими с помощью json и Music Object.

   private void btnLoad_Click(object sender, EventArgs e)
    {
        string line;

        using (StreamReader reader = new StreamReader(@"c:\temp\music\playlist.mpl"))
        {
            line = reader.ReadLine();
        }

        var jobj = JsonConvert.DeserializeObject<List<Music>>(line);
    }

    private void btnCreate_Click(object sender, EventArgs e)
    {
        var musiclist = new List<Music>();

        var objSongs = System.IO.Directory.GetFiles(@"C:\temp\music\");

        foreach (var song in objSongs)
        {
            musiclist.Add(new Music { Name = song });
        }

        var ret = Newtonsoft.Json.JsonConvert.SerializeObject(musiclist);

        using (var sw = new StreamWriter(@"c:\temp\music\playlist.mpl"))
        {
            sw.Write(ret);
            sw.Flush();
        }
    }

public class Music
{
    public string Name { get; set; }
}
person Thiago Loureiro    schedule 03.08.2017
comment
Конечно, держись. :) - person Thiago Loureiro; 03.08.2017
comment
поделился, посмотрите. - person Thiago Loureiro; 04.08.2017
comment
спасибо большое.но мне это не помогает.Еще раз спасибо! - person Mohsen; 08.08.2017
comment
помогите пожалуйста, не могу исправить :( - person Mohsen; 29.09.2017