Иллюстрированный самоучитель по C++ Builder

Воспроизведение звука

Timer › Enabled = false; } }
// сигнал от таймера: вывести номер трека
// и время воспроизведения
void __fastcall TForml::TimerTimer(TObject *Sender)
{
int trk; // трек
int min, sec; // время
AnsiString st;
if (MediaPlayer › Mode == mpPlaying) // режим воспроизведения
{
// получить номер воспроизводимого трека
trk = MCI_TMSF_TRACK(MediaPlayer › Position);
if (trk!= Track) // произошла смена трека
 {
TrackInfo0;
 Track = trk; if { Track == 2)
Button2 › Enabled = true; // доступна кнопка "пред.трек"
if (Track == MediaPlayer-XTracks)
Button3 › Enabled = false; // кнопка "след.трек" недоступна }
// вывод информации о воспроизводимом треке
 min = MCI_TMSF_MINUTE(MediaPlayer › Position);
sec = MCIJTMSF_SECOND(MediaPlayer › Position);
st.printf("%d:%.2d",min,sec); Label2 › Caption = st; return;
}
/* Если дисковод открыт или в нем нет
Audio CD, то Mode == mpOpen.
Ждем диск, т. е. до тех пор, пока не будет
Mode == mpStopped + кол-во треков > 1
*/ if ((MediaPlayer › Mode == mpStopped) &&
(MediaPlayer-XTracks > 1)} <
// диск вставлен
Timer › Enabled = false;
Button1 › Caption = PLAY;
Button1 › Enabled = true;
Button1-XTag = 0;
MediaPlayer › Notify = true;
// получить информацию о времени звучания CD
MediaPlayer-XTimeFormat = tfMilliseconds;
int ms = MediaPlayer › Length;
AnsiString st = "Audio CD. Время звучания: ";
st = st + IntToStr(MINUTE(ms));
st = st + ":" + IntToStr(SECOND(ms)};
Labell › Caption = st;
MediaPlayer-XTimeFormat = tfTMSF;
Labell › Visible = true; Track = 0;
return;
}
// дисковод открыт или в дисководе не Audio CD
if ((MediaPlayer › Mode == mpOpen)||
(MediaPlayer › Mode == mpStopped) &&
(MediaPlayer › Tracks == 1))
 {
Labell › Caption = "Вставьте Audio CD";
 if (Labell › Visible)
Labell › Visible = false; else Labell › Visible = true;
}
}
// щелчок на кнопке "следующий трек"
void__fastcall TForml::Button3Click(TObject *Sender)
{ MediaPlayer › Next();
// если перешли к последнему треку, то кнопку Next
// сделать недоступной
if (MCI_TMSF_TRACK(MediaPlayer ›
Position) == MediaPlayer › Tracks)
Button3 › Enabled = false;
if (! Button2 › Enabled) Button2 › Enabled = true;
 Tracklnfо();
Label2 › Caption = "0:00";
}
// щелчок на кнопке "предыдущий трек"
void__fastcall TForml::Button2Click(TObject *Sender)
{
MediaPlayer › Previous(); // в начало текущего трека
MediaPlayer › Previous(); // в начало предыдущего трека
if (MCI_TMSF_TRACK(MediaPlayer › Position) == 1)
 Button2 › Enabled = false;
if (! Button3 › Enabled) Button3 › Enabled = true;
Tracklnfо();
Label2 › Caption = "0:00"; }
// пользователь закрыл окно программы
void __fastcall TForml::FormClose(TObject *Sender, TCloseAction SAction)
{
MediaPlayer › Stop();
MediaPlayer › Close(); }
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.