我最近在c #WindowsFormsApplications中开发了一个音乐播放器。
只有当您选择默认程序时,一切都很顺利,它可以完美地打开一个音乐文件,但是当您选择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());
}
}
}
这是Form1.cs打开文件
public void OpenFile(string filePath)
{
string file1 = File.ReadAllText(filePath);
axWindowsMediaPlayer1.URL = filePath;
}
答案 0 :(得分: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; }
}