Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.03.04;
Скачать: CL | DM;

Вниз

Вопросы по компоненту MediaPlayer   Найти похожие ветки 

 
Flood_control ©   (2007-02-13 15:12) [0]

Здравствуйте у меня такой вопрос, как сделать так что бы мой компонент MediaPlayer1 воспроизводил медиафайл не однократно, либо указаное число раз, либо бесконечно? (медиафайл с вспике 1)
И возможно ли както сделать так что бы громкость воспроизведения с начала воспроизведение пошагово увеличивалась до определенного максимума?


 
Observer ©   (2007-02-13 16:30) [1]

procedure TForm1.Timer1Timer(Sender: TObject);
begin
with MediaPlayer1 do
if FileName<>"" then
Gauge1.Progress:=Round(100*Position/Length);
end;
if Gauge1.Progress:=100 then MediaPlayer1.Play;

Gauge1 находится на вкладке Samples


 
Сергей М. ©   (2007-02-13 16:33) [2]


> [1]


Новая ОС - в действии)


 
Observer ©   (2007-02-13 16:34) [3]

Зачем сразу ОС?


 
Сергей М. ©   (2007-02-13 16:40) [4]

ну а что такими "мелочами" заниматься ?
Сразу - ОС. что уж там мелочиться)... Да сразу на АСМ, иначе никак)

Не ты ли, чудо, трындел намедни в "Прочее" про ОС на "чем-то там" написанную ?)

Ты, дружок, ты)


 
Flood_control ©   (2007-02-13 17:02) [5]

Observer ©
Благодарствую за помощь, а на счет постепенного увеличения звука не подскажешь? К примеру как только начинается медиафайл воспроизводиться звук к примеру составляет 30% и через каждую секунду увеличивался на 1-2%?


 
Tifon ©   (2007-02-13 17:56) [6]

если тебе все равно каким методо увеличивать громкость тогда держи


INT GetMasterVolumeControlID()
{
 // get dwLineID
 MIXERLINE mxl;
 mxl.cbStruct = sizeof(MIXERLINE);
 mxl.dwComponentType = MIXERLINE_COMPONENTTYPE_DST_SPEAKERS;
 if (::mixerGetLineInfo((HMIXEROBJ)ghmx, &mxl,
   MIXER_OBJECTF_HMIXER | MIXER_GETLINEINFOF_COMPONENTTYPE)
   != MMSYSERR_NOERROR)
   return 34;
 // get dwControlID
 MIXERCONTROL mxc;
 MIXERLINECONTROLS mxlc;
 mxlc.cbStruct = sizeof(MIXERLINECONTROLS);
 mxlc.dwLineID = mxl.dwLineID;
 mxlc.dwControlType = MIXERCONTROL_CONTROLTYPE_VOLUME;
 mxlc.cControls = 1;
 mxlc.cbmxctrl = sizeof(MIXERCONTROL);
 mxlc.pamxctrl = &mxc;
 if (::mixerGetLineControls((HMIXEROBJ)ghmx, &mxlc,
   MIXER_OBJECTF_HMIXER | MIXER_GETLINECONTROLSF_ONEBYTYPE)
   != MMSYSERR_NOERROR)
   return 34;
 return mxc.dwControlID;
}

BOOL SetMasterVolume(DWORD dwVolume)
{
  MIXERCONTROLDETAILS mxcd;
  MIXERCONTROLDETAILS_UNSIGNED mxcd_u;
  mxcd.cbStruct = sizeof(mxcd);
  mxcd.dwControlID = MasterVolumeControlID;
  mxcd.cChannels = 1;
  mxcd.cMultipleItems = 0;
  mxcd.cbDetails = 4;
  mxcd.paDetails = &mxcd_u;
  mmr = mixerGetControlDetails((HMIXEROBJ)ghmx, &mxcd, 0L);
  if (MMSYSERR_NOERROR != mmr) return FALSE;
  mxcd_u.dwValue = dwVolume;
  mmr = mixerSetControlDetails((HMIXEROBJ)ghmx, &mxcd, 0L);
  if (MMSYSERR_NOERROR != mmr) return FALSE;
  return TRUE;
}

Переписывать на Delphi, думаю, ни к чему. Надо лишь не забыть добавить uses MMSystem; Громкость отдельных каналов очень просто устанавливается через auxSetVolume и аналогичные.

Код не мой, но думаю рабочий



Страницы: 1 вся ветка

Текущий архив: 2007.03.04;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.062 c
6-1159423149
fishka
2006-09-28 09:59
2007.03.04
Пользователь для IdTelnet?


2-1171543139
Muscat
2007-02-15 15:38
2007.03.04
Файлы *.rtl . Помогите кто чем может!!!


2-1171376695
Gtnheirby
2007-02-13 17:24
2007.03.04
Не восстанавливается БД


2-1171613987
reqty
2007-02-16 11:19
2007.03.04
Доступ на запись


1-1168698927
__ViC__
2007-01-13 17:35
2007.03.04
Панель задач