Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - Mp3 Player в Delphi7

Ответить
Настройки темы
Delphi - Mp3 Player в Delphi7

Аватара для Max009

Новый участник


Сообщения: 28
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Пишу на Delphi7 (и 3Ds Max) проигрыватель MP3.
Использую как основу компонент Mediaplayer(полностью самому написать пока нереально - всего пол года прошло как начал прогать,
а ведь ещё учёба...)

Друзья, когда увидели мою прогу сказали, что предпочтут её Winamp'у!
В 3Ds Max6 сделал 3D катушечный мафон, который реагирует на
перемотку, конец песни(обрыв ленты) и т.д.
Всё работает в общем нормально.

Трамбла произошла когда начал создавать плей лист.
В общем я его создал, но если вы бы увидили "код" отвечающий за его
работу, то упали бы в обморок...
Создавал на основе компонента ListView панели Win32.
Песни в него загружаются, но если щелкнуть не по ней, а рядом с ней
всё зависает. И как сделать, чтобы по окончании песни сама включалась
следующая? По-жа-луй-ста покажите на примере.

А как сделать чтобы регулировалась громкость?

Может киданёте ссылочку или посоветуете книгу?

Спасибо!:beer:

Отправлено: 16:04, 20-02-2005

 

Аватара для [mzd]

Линуксоид-стакановец


Сообщения: 2391
Благодарности: 186

Профиль | Отправить PM | Цитировать


Попробуй это код для громкости
Код: Выделить весь код
 var
 VolumeBar: TProgressBar;
     cmdMinVolume: TSpeedButton;
     cmdMaxVolume: TSpeedButton;
 
 procedure TMainForm.FormCreate(Sender: TObject);
 var
   i: integer;
   MixLine: TMixerLine;
   MixLineCtrl: TMixerLineControls;
   MixCtrl: TMixerControl;
 begin
   inherited;
   MixerOpen(@hmix, 0, Handle, 0, MIXER_OBJECTF_MIXER or CALLBACK_WINDOW);
   MixerGetDevCaps(0, @mixcaps, SizeOf(MixCaps));
   for I := 0 to MixCaps.cDestinations - 1 do
   begin
     Mixline.dwDestination := I;
     Mixline.cbStruct := SizeOf(Mixline);
     MixerGetLineInfo(hmix, @mixline, MIXER_GETLINEINFOF_DESTINATION);
     if Mixline.dwComponentType = MIXERLINE_COMPONENTTYPE_DST_SPEAKERS then
       break;
   end;
   if Mixline.dwComponentType <> MIXERLINE_COMPONENTTYPE_DST_SPEAKERS then
   begin
     ShowMessage('Микшер не найден !');
     svEnable := False;
     Exit;
   end
   else
     svEnable := True;
   MixLineCtrl.cbStruct := SizeOf(MixLineCtrl);
   MixLineCtrl.dwControlType := MIXERCONTROL_CONTROLTYPE_VOLUME;
   MixLineCtrl.dwLineID := MixLine.dwLineID;
   MixLineCtrl.cControls := 2;
   MixLineCtrl.cbmxctrl := Sizeof(MixCtrl);
   MixCtrl.dwControlType := MIXERCONTROL_CONTROLTYPE_VOLUME;
   MixLineCtrl.pamxctrl := @MixCtrl;
   MixerGetLineControls(hmix, @mixlinectrl, MIXER_GETLINECONTROLSF_ONEBYTYPE);
   VolumeID := MixCtrl.dwControlID;
   VolMin := MixCtrl.Bounds.dwMinimum;
   VolMax := MixCtrl.Bounds.dwMaximum;
   Details.cbStruct := Sizeof(Details);
   Details.dwControlID := VolumeID;
   Details.cChannels := 1;
   Details.cMultipleItems := 0;
   Details.cbDetails := SizeOf(Valdets);
   Details.paDetails := @valdets;
   MixerGetControlDetails(hmix, @details, MIXER_GETCONTROLDETAILSF_VALUE);
   CurVolume := Valdets.dwValue;
   VolumeBar.Min := VolMin;
   VolumeBar.Max := VolMax;
   VolumeBar.Position := CurVolume;
 
 procedure TMainForm.VolumeBarMouseDown(Sender: TObject; Button: TMouseButton;
   Shift: TShiftState; X, Y: integer);
 begin
   if not svEnable then exit;
   X := Round(X / VolumeBar.Width * (VolumeBar.Max - VolumeBar.Min) + VolumeBar.Min);
   VolumeBar.Position := X;
   Details.cbStruct := Sizeof(Details);
   Details.dwControlID := VolumeID;
   Details.cChannels := 1;
   Details.cMultipleItems := 0;
   Details.cbDetails := Sizeof(Valdets);
   Details.paDetails := @Valdets;
   if X > 4000 then
     Valdets.dwValue := VolumeBar.Position
   else
     Valdets.dwValue := 0;
   MixerSetControlDetails(hmix, @details, MIXER_SETCONTROLDETAILSF_VALUE);
 end;
 
 procedure TMainForm.cmdMinVolumeClick(Sender: TObject);
 begin
   if not svEnable then Exit;
   VolumeBar.Position := VolumeBar.Position - (VolumeBar.Max - VolumeBar.Min) div 50;
   if VolumeBar.Position < VolumeBar.Min then
     VolumeBar.Position := VolumeBar.Min;
   Details.cbStruct := SizeOf(Details);
   Details.dwControlID := VolumeID;
   details.cChannels := 1;
   Details.cMultipleItems := 0;
   Details.cbDetails := SizeOf(Valdets);
   Details.paDetails := @Valdets;
   if VolumeBar.Position > 4000 then
     valdets.dwValue := VolumeBar.Position
   else
     valdets.dwValue := 0;
   MixerSetControlDetails(hmix, @details, MIXER_SETCONTROLDETAILSF_VALUE);
 end;
 
 procedure TMainForm.cmdMaxVolumeClick(Sender: TObject);
 begin
   if not svEnable then Exit;
   VolumeBar.Position := VolumeBar.Position + (VolumeBar.Max - VolumeBar.Min) div 50;
   if VolumeBar.Position > VolumeBar.Max then
     VolumeBar.Position := VolumeBar.Max;
   Details.cbStruct := SizeOf(Details);
   Details.dwControlID := VolumeID;
   Details.cChannels := 1;
   Details.cMultipleItems := 0;
   Details.cbDetails := SizeOf(Valdets);
   Details.paDetails := @Valdets;
   if VolumeBar.Position > 4000 then
     Valdets.dwValue := VolumeBar.Position
   else
     Valdets.dwValue := 0;
   MixerSetControlDetails(hmix, @details, MIXER_SETCONTROLDETAILSF_VALUE);
 end;
 end;

-------
Живя в реальном мире, стремись к невероятному... Эрнесто Че Гевара
Everybody lies. (c) House M.D.
Базовая настройка Ubuntu. Документация для новичка.
Руководство по установке, начальной настройке и основам использования операционной системы Ubuntu


Отправлено: 16:18, 20-02-2005 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - Mp3 Player в Delphi7

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Flash - Проблемы с USB Sony digital mp3 player... SANIOK_AV Накопители (SSD, HDD, USB Flash) 2 25-09-2009 13:26
Разное - Проблема с TakeMS MP3 Player John1992on Прочее железо 7 29-03-2009 04:19
MP3-Player iRiver Milk Мобильные ОС, смартфоны и планшеты 7 06-11-2004 15:23
USB - MP3 Player (FAT32) Guest Общий по FreeBSD 27 31-08-2004 12:14




 
Переход