Mon application fait cela, joue le son sélectionné en utilisant wmplib et sur statechangeevent = 1 (lecteur multimédia arrêté), je vais fermer le lecteur en utilisant la commande close() et en définissant l'URL à "";Fileinfo delete command
Maintenant, à chaque fois, j'ai essayé de supprimer un son en cours de lecture, en fait, il sera supprimé, parce que quand j'ai regardé le répertoire, le fichier a été supprimé. Chaque fois que je supprime un fichier, je rechargerai les contrôles qui listeront le fichier multimédia dans le répertoire. Cependant, il trouvera toujours le son qui a déjà été supprimé dans le répertoire. J'ai essayé de cette façon, le débogage lentement, et j'ai découvert que la commande File info delete()
prend plus de temps à supprimer, étant donné que la fermeture du lecteur multimédia prend plus de temps à être supprimée, c'est pourquoi chaque fois J'essaie de recharger les collections après avoir supprimé une chanson en cours de lecture, la chanson supprimée est toujours là. Lorsque j'essayais de supprimer lorsque le lecteur multimédia ne jouait pas le morceau, il disparaissait rapidement et les collections de rechargement montraient le résultat de la chanson disparue.
La question est, comment puis-je supprimer le fichier en cours de lecture, en s'assurant que les collections de rechargement afficheront le nombre correct de chansons dans le répertoire?
Toute aide serait grandement appréciée.
Mon code est le suivant.
DirectoryInfo di = new DirectoryInfo(@"C:/Sounds/Custom Sounds/");
FileInfo[] filepaths = MultipleFileFilter(di, "*.mp3,*.wma,*.wav");
for (int i = 0; i < filepaths.Length; i++)
{
if (Path.GetFileNameWithoutExtension(Convert.ToString(filepaths[i]))== deleteItem)
{
System.IO.FileInfo fi = new System.IO.FileInfo(@"C:/Sounds/Custom Sounds/" + Convert.ToString(filepaths[i]));
fi.Delete();
}
}
// Load the sounds
DirectoryInfo dii = new DirectoryInfo(@"C:/Sounds/Custom Sounds/");
FileInfo[] filess = MultipleFileFilter(dii, "*.mp3,*.wma,*.wav");
for (int i = 0; i < filess.Length; i++)
{
RadioButton rb = new RadioButton();
rb.Text = Path.GetFileNameWithoutExtension(filess[i].ToString());
rb.Name = Path.GetFileName(filess[i].ToString());
rb.CheckedChanged += new EventHandler(radioButton_Update);
Point lc = new Point(15, yPos);
rb.Location = lc;
panelSound.Controls.Add(rb);
lstbxCustomSounds.Items.Add(Path.GetFileNameWithoutExtension(rb.Text));
yPos += 20;
//add into the arraylist
controlsCollections.Add(rb);
}
Peut-être est-ce le problème? Parce que seul le son actuellement en cours de suppression causera ce problème?
private void wPlayer_PlayStateChange(int newstate)
{
if (newstate == 1)//Media finished
{
btnPlay.Text = "Play";
wplayer.close();
btnDelete.Enabled = true;
wplayer.URL = "";
}
else if (newstate == 3)
{
btnDelete.Enabled = false;
}
Quelle est la question? –
Est-ce que quelqu'un a plus de suggestions? – Daniel