2017-08-03 10 views
0

最近C#WindowsFormsApplicationsで音楽プレーヤーを開発しました。音楽プレーヤーで複数のファイルを関連付ける方法#

プログラムをデフォルトに設定すると、すべてがうまくいっていますが、1つの音楽ファイルを完全に開くことはできますが、5つの音楽ファイルを選択すると完全に開くことができます。 5人の音楽プレーヤーが開いています。

C#で再生リストのようにデフォルトに設定すると、これを修正して複数のファイルを開く方法を教えてください。 そして私はそれをするために何かコードを試していませんでした。 助けてください!

これが私のProgram.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()); 
     } 
    } 
} 

であり、これはファイル

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

少しCODEは傷つきませんでした。どうやって選択/読み込みを行いますか?あなたのアプリケーションにどんな種類のタイトルリストがありますか? – MaxW

+0

あなたは0行のコードを示していたので、私は何があなたを悩ましているのかを仮定することができます。私はあなたのアプリケーションの 'Main'メソッドで複数のファイル名を扱うべきだと思います(' Program.cs'の中にあります) – Nino

+1

このコードは1つのファイルで動作します – Mohsen

答えて

1

それはあなたが新しいファイル形式(プレイリスト)を作成して受け取るのですあなたに最適なアプローチを開くことForm1.csのですアプリケーション内のこのファイルを管理して、このプレイリストから曲を追加/削除することができます。 良いアプローチは、コンテンツをJSon形式で保存することです。 NewtonSoftなどのNuget Packagesを使用して簡単にコンテンツを管理することができます。

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; } 
} 
+1

あなたは共有できますか?コードしてください! – Mohsen

+0

もちろん、ホールドしてください。 :) –

+0

を共有してください。 –

関連する問題