Модераторы: Snowy, Alexeis, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с регулировкой громкости, Код не работает 
:(
    Опции темы
EvgenF
Дата 18.8.2006, 23:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 18.8.2006
Где: Рязань

Репутация: нет
Всего: нет



Использую в программе приведённый ниже код (взят с вашего форума и в DRKB тоже имеется). Проблема заключается в том, что он не работает, то есть громкость совершенно не изменяется  smile  
Мне нужно регулировать громкость воспроизведения в программе не затрагивая громкость в системе в целом.
В чём может быть дело?? Или может какой другой есть способ?
И ещё, для зацикливания проигрывания файла в MediaPlayer я использовал обработку события MediaPlayer1Notify, и обнаружил при этом одну неприятную деталь: при переходе с конца на начало файла прослушивается челчёк  smile  (файл тут не причём, в WinAmp он проигрывается без щелчков). Может существуют какие-либо ещё способы зацикливания, чтобы избавиться от щелчков??
Вот собственно код моей программы (там ничего нового, всё списано с DRKB)
Код

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, MPlayer, StdCtrls, MMSystem;

const
 MCI_SETAUDIO = $0873;
 MCI_DGV_SETAUDIO_VOLUME = $4002;
 MCI_DGV_SETAUDIO_ITEM = $00800000;
 MCI_DGV_SETAUDIO_VALUE = $01000000; 
 MCI_DGV_STATUS_VOLUME = $4019; 

type 
 MCI_DGV_SETAUDIO_PARMS = record 
   dwCallback: DWORD; 
   dwItem: DWORD; 
   dwValue: DWORD; 
   dwOver: DWORD; 
   lpstrAlgorithm: PChar; 
   lpstrQuality: PChar; 
 end; 

type 
 MCI_STATUS_PARMS = record 
   dwCallback: DWORD;
   dwReturn: DWORD;
   dwItem: DWORD;
   dwTrack: DWORD;
 end;

type
  TForm1 = class(TForm)
    MediaPlayer1: TMediaPlayer;
    TrackBar1: TTrackBar;
    Label1: TLabel;
    procedure FormClick(Sender: TObject);
    procedure TrackBar1Change(Sender: TObject);
    procedure MediaPlayer1Notify(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}


procedure SetMPVolume(MP: TMediaPlayer; Volume: Integer);
 { Volume: 0 - 1000 }
var
 p: MCI_DGV_SETAUDIO_PARMS;
begin
 { Volume: 0 - 1000 }
 p.dwCallback := 0;
 p.dwItem := MCI_DGV_SETAUDIO_VOLUME;
 p.dwValue := Volume;
 p.dwOver := 0;
 p.lpstrAlgorithm := nil;
 p.lpstrQuality := nil;
 mciSendCommand(MP.DeviceID, MCI_SETAUDIO,
   MCI_DGV_SETAUDIO_VALUE or MCI_DGV_SETAUDIO_ITEM, Cardinal(@p));
end;

procedure TForm1.FormClick(Sender: TObject);
begin
  MediaPlayer1.FileName:= 'Susl.wav';
  MediaPlayer1.Open;
  MediaPlayer1.Play;
end;

procedure TForm1.TrackBar1Change(Sender: TObject);
begin
  SetMPVolume(MediaPlayer1, TrackBar1.Position);
end;

procedure TForm1.MediaPlayer1Notify(Sender: TObject); 
begin with MediaPlayer1 do 
    if NotifyValue = nvSuccessful then 
      begin 
        Notify := True; 
        Play; 
      end; 
end;

end.

PM MAIL   Вверх
bems
Дата 19.8.2006, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 1
Всего: 88



Цитата(EvgenF @  18.8.2006,  23:11 Найти цитируемый пост)
 Может существуют какие-либо ещё способы зацикливания, чтобы избавиться от щелчков??
попробуй выдержать паузу между повторами. Если не поможет нужно "плавное затихание" в конце



--------------------
Обижено школьников: 8
PM MAIL   Вверх
EvgenF
Дата 19.8.2006, 22:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 18.8.2006
Где: Рязань

Репутация: нет
Всего: нет



Неужели никто не может мне помочь??   smile 
Как принципиально такое может быть, что у всех код работает, а у меня - нет ?
PM MAIL   Вверх
Alexeis
Дата 19.8.2006, 23:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 55
Всего: 459



Цитата(EvgenF @  19.8.2006,  22:10 Найти цитируемый пост)
Неужели никто не может мне помочь??

Похоже что не могут smile  "Delphi: Звук, графика и видео" у нас слабоват.

ну что попробую разобратся...
-------------------------------------------------------------
Цитата

The following flags apply to the digitalvideo device type: 
....................................

MCI_DGV_SETAUDIO_VOLUME The audio level for one or both audio channels is specified as a factor in the dwValue member of the structure identified by lpSetAudio. If the left and right volumes have been set to different values, then the ratio of left to right volume is approximately unchanged.


Это сообщение отредактировал(а) alexeis1 - 20.8.2006, 00:34


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Alexeis
Дата 20.8.2006, 00:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 55
Всего: 459



Кстати описание ошибки выглядит так
Цитата

Используемое устройство не MCI не поддерживает указанную команду


Это означает что при воспроизвелении аудио данная команда недоступна для использования, что в конечном итоге приводит к тому что изменение громкости при таком способе воспроизведения возможно только при изменении общего регулятора громкости.

Предлогаю отказатся от медиаплеера и воспроизводить Wave звук с помощью Mutlimedia API WAVEOUT
(система функций)


Это сообщение отредактировал(а) alexeis1 - 20.8.2006, 01:22


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
EvgenF
Дата 20.8.2006, 10:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 18.8.2006
Где: Рязань

Репутация: нет
Всего: нет



А это позволит мне регулировать звук именно в моей программе, не затрагивая регулятор всей системы??
Если да, то где мне посмотреть информацию по этому вопросу?

И ещё а нельзя ли решить мою проблему с использованием библиотек FMOD или BASS ? Или там только 3D звук и больше ничего не сделаешь??
PM MAIL   Вверх
Alexeis
Дата 20.8.2006, 18:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 55
Всего: 459



Цитата(EvgenF @  20.8.2006,  10:54 Найти цитируемый пост)
А это позволит мне регулировать звук именно в моей программе, не затрагивая регулятор всей системы??

Позволит

Цитата(EvgenF @  20.8.2006,  10:54 Найти цитируемый пост)
И ещё а нельзя ли решить мою проблему с использованием библиотек FMOD или BASS ? Или там только 3D звук и больше ничего не сделаешь?? 

Конечно, ведь там полноценный набор для создания медиа проигрывателя.

Добавлено @ 18:25 
Вот пример описание работы с WaveOut
http://delphikingdom.ru/asp/viewitem.asp?catalogid=534

Это сообщение отредактировал(а) alexeis1 - 20.8.2006, 18:25


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Звук, графика и видео"
Girder
Snowy
Alexeis

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • По вопросам разработки игр стоит заглянуть сюда

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема »


 




[ Время генерации скрипта: 0.0503 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.