Вопрос

У меня есть MP3 -плеер, который отправляет команды MCI для воспроизведения Pause/FF/RW/Stop Audio File и т. Д., И единственное, что я не могу понять, как сделать, - это отправить команду MCI, чтобы сказать ей, чтобы воспроизвести следующую песню, когда Текущий закончил играть.

Песни в списке. У меня нет проблем на самом деле выбирать следующую песню, мне просто нужно узнать когда сыграть следующую песню в плейлисте. Я бы вообще признателен за любую помощь

Спасибо :)

Это было полезно?

Решение

Извините, что заработал это через месяц или около того, но я считать У меня может быть более приятный ответ ...

Вы можете сделать длину за секунды, или вы можете попросить MCI уведомить вас самостоятельно.

Когда вы отправляете свою команду «Play», затяните «уведомление» после псевдонимы средств массовой информации, а затем передайте ручку вашего окна (я использую System.windows.forms, отсюда и «this.handle»), как так:

uint playOk = mciSendString("play MediaFile notify", null, 0, this.Handle);

Это говорит MCI отправить вам уведомление, когда команда завершается или прерывается. Тогда вы можете просто отфильтровать сообщения, которые получает ваше окно, чтобы увидеть, что что -то вам интересует:

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);
}

Кажется, это работает для меня отлично. Надеюсь, это поможет. ;)

Другие советы

Можете ли вы проверить продолжительность MP3 и сохранить таймер на стороне воспроизведения MP3? Сделайте паузу таймера, когда MP3 приостанавливается и т. Д. Когда сыграла продолжительность песни, сыграйте следующую песню.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top