Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 4 363

/ вопрос открыт /

Привет всем!!!
Хочется узнать как в мультимедиа программах без использования API контроллирующих громкость системного звука и без использования библиотеки BASS можно контроллировать громкость звука воспроизводимого приложением.
Оч интересно.
Заранее списибо.

SOA Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: SOA (статус: Посетитель)
Вопрос отправлен: 27 июня 2010, 08:13
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: Вадим К

Здравствуйте, SOA!
а очень просто. если звук формируется самостоятельно, то в конце концов на выходе приложения получается набор отсчетов, которые и подаются апи фукнциям на воспроизведения. Программно эти отсчеты выглядят как массив чисел. Это же pcm файл.
Что бы уменьшить громкость в два раза к примеру, нужно просто умножить каждый отсчет на 0.5. И все.
Осталось решить последнюю проблему - а как подать данные операционной системе, что бы она их воспроизвела. для этого можно к примеру скачать компоненты http://www.torry.net/vcl/mmedia/audio/acmcomponents16.zip - там есть все, что нужно.

Ответ отправил: Вадим К (статус: Академик)
Время отправки: 27 июня 2010, 16:28
Оценка за ответ: 5

Комментарий к оценке: Спасибо!

Мини-форум вопроса

Всего сообщений: 36; последнее сообщение — 28 июня 2010, 18:28; участников в обсуждении: 5.

Страницы: [1] [2] [Следующая »]

min@y™

min@y™ (статус: Доктор наук), 27 июня 2010, 08:59 [#1]:

Ты бы, хоть, знаки препинания расставлял, а то твои предложения имеют неоднозначный смысл.

Цитата (SOA):

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

Самое главное не написал: своего приложения или чужого?

Цитата (SOA):

без использования API

Здесь под "API" предполагается API Windows или API конкретного приложения?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
SOA

SOA (статус: Посетитель), 27 июня 2010, 09:06 [#2]:

Чтоб было понятне привожу пример подобной программы Winamp когда вы уменьшаете громкость звука в winamp до 0, то в WindowsMediaPlayer звук продолжает играть. Если для этих целей использовать API windows насколько я знаю, то потушишь звук во всех приложениях.
SOA

SOA (статус: Посетитель), 27 июня 2010, 09:09 [#3]:

Что касается других приложений и их API то их использовать не хочется, потому что чувствую что все это можно реализовать програмно, потому и без использования библиотеки BASS.
min@y™

min@y™ (статус: Доктор наук), 27 июня 2010, 10:24 [#4]:

Кроме как формировать звук вручную с учётом локальной громкости, ничего в голову не приходит.
Посмотрим, что скажут другие эксперты.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
padonak

padonak (статус: Посетитель), 27 июня 2010, 14:51 [#5]:

извените если не в тему, но я бы поискал исходники плееров... такое уже кто-нибудь написал - это 100%, так что велосипед выдумывать не стоит...
SOA

SOA (статус: Посетитель), 27 июня 2010, 16:15 [#6]:

Конечно писали, но практически в каждом таком проекте используется библиотека BASS.
SOA

SOA (статус: Посетитель), 27 июня 2010, 16:31 [#7]:

Нельзя ли немного поподробнее про
самостоятельно формирующийся звук
Вадим К

Вадим К (статус: Академик), 27 июня 2010, 17:14 [#8]:

что именно интересует? где взять его? например загрузить с wav файла.
Галочка "подтверждения прочтения" - вселенское зло.
min@y™

min@y™ (статус: Доктор наук), 27 июня 2010, 17:16 [#9]:

Цитата (SOA):

Нельзя ли немного поподробнее про самостоятельно формирующийся звук

Не "формирующийся", а "формируемый"! Ты в каком классе учишься?

Обратись к автору какой-нибудь популярной программы, написанной на delphi, где это реализовано. Например, зашли письмо автору QIP Сергею Галездинову.
Вот посмотри скриншот: http://slil.ru/29399855
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
SOA

SOA (статус: Посетитель), 27 июня 2010, 18:48 [#10]:

To Вадим К: тоесть если я все правильно понял то вы пишете что нужно загрузить звуковую дорожку програмно(просто считать как файл в соответствии с форматом) в буфер, после чего просто разделить каждый байт буфера на 2.
А затем просто передать этот буфер на обработку windows.
Так?
min@y™

min@y™ (статус: Доктор наук), 27 июня 2010, 18:55 [#11]:

Цитата (SOA):

после чего просто разделить каждый байт буфера на 2.

Юноша! Ты, случайно, не на чукотке живёшь?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
SOA

SOA (статус: Посетитель), 27 июня 2010, 18:58 [#12]:

Че такое обоснуй.
min@y™

min@y™ (статус: Доктор наук), 27 июня 2010, 18:59 [#13]:

Сдаётся мне, если ты осуществишь задуманное, то получится новая BASS.DLL. Почему использование BASS для тебя неприемлемо?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
SOA

SOA (статус: Посетитель), 27 июня 2010, 19:01 [#14]:

Да отчего так считаете?
Внутрь BASS заглядывали или исходники видели?
min@y™

min@y™ (статус: Доктор наук), 27 июня 2010, 19:02 [#15]:

Цитата (SOA):

Че такое обоснуй.

Ну, как сказать...
Русский язык знаешь плохо, плюс очень наивный (это я про "разделить каждый байт на 2"). Сразу ассоциация с популярным выражением "наивный чукотский юноша".

Не обижайся, ничего личного. :)
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
SOA

SOA (статус: Посетитель), 27 июня 2010, 19:04 [#16]:

За мой русский не волнуйся, про наивняк есть такое дело, но проходит.
Так почему вам так не нравится выражение каждый байт разделить на 2?
min@y™

min@y™ (статус: Доктор наук), 27 июня 2010, 19:07 [#17]:

Цитата (SOA):

Да отчего так считаете?

Я никогда ничего не считаю. За меня компьютеры считают.

Цитата (SOA):

Внутрь BASS заглядывали или исходники видели?

Смею огорчить: увы - не заглядывали и не видели.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
min@y™

min@y™ (статус: Доктор наук), 27 июня 2010, 19:11 [#18]:

Цитата (SOA):

За мой русский не волнуйся

Да что ты! Никакого волнения, просто трудно понять, что ты хотел сказать.

Цитата (SOA):

про наивняк есть такое дело, но проходит.

IMHO, это не есть хорошо. Слово из трёх букв, однозначно идентифицирующее наивного человека, я здесь писать не буду: его и так все знают.

Цитата (SOA):

Так почему вам так не нравится выражение каждый байт разделить на 2?

Да потому что в wav-файле находится спектр изменения звукового сигнала, а не громкость от 0 до 255 в каждом байте. Всё намного сложнее, чем ты думаешь.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
SOA

SOA (статус: Посетитель), 27 июня 2010, 19:14 [#19]:

Про использование BASS.
Я терпеть ненавижу зависеть от кого либо или чего либо это раз. Если мне нужна только функция контроля звука, то все остальные только утежелят программу это два. Также я не знаю платная эта библиотека или бесплатная это три. Вобщем причин у меня для отказа от Bass много, да и просто интересно как оно реализуется вживую.
SOA

SOA (статус: Посетитель), 27 июня 2010, 19:17 [#20]:

Ну так и писал бы что спектр а не громкость а то вокруг да около.

Страницы: [1] [2] [Следующая »]

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 31 мая 2023, 22:25
Выполнено за 0.03 сек.
Рейтинг@Mail.ru