Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Каждому tmediaplayer-у своя громкость [D7, WinXP]


Petrush ©   (2004-09-02 11:09:00) 

У меня в проекте используется два tmediaplayer. Так вот - появилась задача: нужно чтобы один из них играл в два раза тише чем второй.Вопрос: как это сделать?


nasty   (2004-09-03 17:34:00) [1]

to Petrush
ну можно было предположить, что число кратно степени 2-ки...
mci уже давно не пользовался, не все современные кодеки могут работать с mci (например, некоторые видео в n раз быстрее проигрывают).
еще некоторые неприятности возникают:
а при паузе изображение на tmediaplayer можно стирать другими окошками. чтобы обойти это я свой подобный плеер писал на командах mcisendstring, могу прислать.


Petrush   (2004-09-03 16:28:00) [2]

то nasty

Токо что сам нашел от 0 до 255 дБ

http://public.uic.rsu.ru/~skritski/scourses/WebTutor/MCI/mcivideo.html#Setaudio

Читай, там написано. Теперь то ясно почему при значении 200 оно играет на 80% ;)


nasty   (2004-09-03 15:19:00) [3]

по-моему 1000. я тоже выбирал опытным путем.
в msdn не описано максимально возможное значение громкости.


Petrush   (2004-09-03 15:03:00) [4]

У меня подозрение, что диапазон от 0 до 1000,
но тогда логично думать, что когда ставим в 200 то получаем громкость равную 20%. Но на слух там побольше 20%. В чем прикол?


Petrush   (2004-09-03 14:49:00) [5]

Еще вопрос.
Сделал - все получилось, вот только одного не пойму. Я на глаз ( точнее на ухо :) )выставил величину в setaudio

mciSendstring(Pchar('setaudio "' + Form1.MediaPlayer2.FileName + '" volume to ' + IntToStr(200)), nil, 0, 0);

Как видно поставил ее равной 200 (получилось тише чем у другого tmediaplayer-а, кот. я вообще ничего не выставлял по громкости), мне подошел уровень громкости, но для себя я так и не уяснил, что это за уровень и в каких пределах он должен лежать.


Petrush   (2004-09-02 15:32:00) [6]

to nasty

Все, сделал.

Спасибо.


nasty   (2004-09-02 14:08:00) [7]

примерно так:

mciSendString(
 PAnsiChar(
 Format('setaudio C:\test.mp3 volume to %d',
 [TrackBar1.Position])), nil, 0, 0);


но с длинными именами файлов проблемы могут быть, поэтому алиасы лучше использовать.
а вообще tmediaplayer устарел давно. лучше использовать BASS.DLL


Petrush   (2004-09-02 13:14:00) [8]

to nasty

а пример можно?


nasty   (2004-09-02 11:47:00) [9]

ф-ция mcisendstring, команда setaudio


Наверх

Титульная страница Поиск, карта сайта Написать письмо