A música terminou de tocar? (C# MCI)
Pergunta
Eu tenho um mp3 player que envia comandos do MCI para reproduzir pausas/ff/rw/stop os arquivos de áudio etc e a única coisa que não consigo descobrir como fazer é enviar um comando mci para dizer para tocar a próxima música quando a música Atualmente, o One terminou.
As músicas estão em uma caixa de listagem. Não tenho problemas para realmente selecionar a próxima música, só preciso descobrir quando Para tocar a próxima música na lista de reprodução. Eu apreciaria qualquer ajuda
Obrigada :)
Solução
Desculpe dragar isso depois de um mês ou mais, mas eu acho Eu posso ter uma resposta mais agradável ...
Você pode fazer o comprimento em segundos, ou pode que o MCI o notifique.
Quando você envia seu comando "play", tole o "notificar" após o pseudônimo da mídia e depois passa a alça da sua janela (estou usando o System.windows.forms, daí o 'this.handle'), assim:
uint playOk = mciSendString("play MediaFile notify", null, 0, this.Handle);
Isso diz ao MCI para enviar uma notificação quando o comando é concluído ou é interrompido. Então você pode apenas filtrar as mensagens que sua janela recebe para ver se alguma coisa está interessada se passa:
private const int MM_MCINOTIFY = 0x03b9;
private const int MCI_NOTIFY_SUCCESS = 0x01;
private const int MCI_NOTIFY_SUPERSEDED = 0x02;
private const int MCI_NOTIFY_ABORTED = 0x04;
private const int MCI_NOTIFY_FAILURE = 0x08;
protected override void WndProc(ref Message m)
{
if (m.Msg == MM_MCINOTIFY)
{
switch (m.WParam.ToInt32())
{
case MCI_NOTIFY_SUCCESS:
// success handling
break;
case MCI_NOTIFY_SUPERSEDED:
// superseded handling
break;
case MCI_NOTIFY_ABORTED:
// abort handling
break;
case MCI_NOTIFY_FAILURE:
// failure! handling
break;
default:
// haha
break;
}
}
base.WndProc(ref m);
}
Isso parece estar funcionando muito bem para mim. Eu espero que isso ajude. ;)
Outras dicas
Você pode verificar a duração do MP3 e manter um cronômetro ao lado da reprodução de MP3? Pause o cronômetro quando o MP3 é pausado, etc. Quando a duração da música tocou, toque a próxima música.