|
Вопрос # 4 363/ вопрос открыт / |
|
Привет всем!!!
Хочется узнать как в мультимедиа программах без использования API контроллирующих громкость системного звука и без использования библиотеки BASS можно контроллировать громкость звука воспроизводимого приложением.
Оч интересно.
Заранее списибо.
 |
Вопрос задал: 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™ (статус: Доктор наук), 27 июня 2010, 08:59 [#1]:
Ты бы, хоть, знаки препинания расставлял, а то твои предложения имеют неоднозначный смысл.
Цитата (SOA):
громкость звука воспроизводимого приложением
Самое главное не написал: своего приложения или чужого?
Цитата (SOA):
без использования API
Здесь под "API" предполагается API Windows или API конкретного приложения?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
SOA (статус: Посетитель), 27 июня 2010, 09:06 [#2]:
Чтоб было понятне привожу пример подобной программы Winamp когда вы уменьшаете громкость звука в winamp до 0, то в WindowsMediaPlayer звук продолжает играть. Если для этих целей использовать API windows насколько я знаю, то потушишь звук во всех приложениях.
|
|
SOA (статус: Посетитель), 27 июня 2010, 09:09 [#3]:
Что касается других приложений и их API то их использовать не хочется, потому что чувствую что все это можно реализовать програмно, потому и без использования библиотеки BASS.
|
|
min@y™ (статус: Доктор наук), 27 июня 2010, 10:24 [#4]:
Кроме как формировать звук вручную с учётом локальной громкости, ничего в голову не приходит.
Посмотрим, что скажут другие эксперты.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
padonak (статус: Посетитель), 27 июня 2010, 14:51 [#5]:
извените если не в тему, но я бы поискал исходники плееров... такое уже кто-нибудь написал - это 100%, так что велосипед выдумывать не стоит...
|
|
SOA (статус: Посетитель), 27 июня 2010, 16:15 [#6]:
Конечно писали, но практически в каждом таком проекте используется библиотека BASS.
|
|
SOA (статус: Посетитель), 27 июня 2010, 16:31 [#7]:
Нельзя ли немного поподробнее про
самостоятельно формирующийся звук
|
|
Вадим К (статус: Академик), 27 июня 2010, 17:14 [#8]:
что именно интересует? где взять его? например загрузить с wav файла.
Галочка "подтверждения прочтения" - вселенское зло.
|
|
min@y™ (статус: Доктор наук), 27 июня 2010, 17:16 [#9]:
Цитата (SOA):
Нельзя ли немного поподробнее про самостоятельно формирующийся звук
Не "формирующийся", а "формируемый"! Ты в каком классе учишься?
Обратись к автору какой-нибудь популярной программы, написанной на delphi, где это реализовано. Например, зашли письмо автору QIP Сергею Галездинову.
Вот посмотри скриншот: http://slil.ru/29399855
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
SOA (статус: Посетитель), 27 июня 2010, 18:48 [#10]:
To Вадим К: тоесть если я все правильно понял то вы пишете что нужно загрузить звуковую дорожку програмно(просто считать как файл в соответствии с форматом) в буфер, после чего просто разделить каждый байт буфера на 2.
А затем просто передать этот буфер на обработку windows.
Так?
|
|
min@y™ (статус: Доктор наук), 27 июня 2010, 18:55 [#11]:
Цитата (SOA):
после чего просто разделить каждый байт буфера на 2.
Юноша! Ты, случайно, не на чукотке живёшь?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
SOA (статус: Посетитель), 27 июня 2010, 18:58 [#12]:
Че такое обоснуй.
|
|
min@y™ (статус: Доктор наук), 27 июня 2010, 18:59 [#13]:
Сдаётся мне, если ты осуществишь задуманное, то получится новая BASS.DLL. Почему использование BASS для тебя неприемлемо?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
SOA (статус: Посетитель), 27 июня 2010, 19:01 [#14]:
Да отчего так считаете?
Внутрь BASS заглядывали или исходники видели?
|
|
min@y™ (статус: Доктор наук), 27 июня 2010, 19:02 [#15]:
Цитата (SOA):
Че такое обоснуй.
Ну, как сказать...
Русский язык знаешь плохо, плюс очень наивный (это я про "разделить каждый байт на 2"). Сразу ассоциация с популярным выражением "наивный чукотский юноша".
Не обижайся, ничего личного.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
SOA (статус: Посетитель), 27 июня 2010, 19:04 [#16]:
За мой русский не волнуйся, про наивняк есть такое дело, но проходит.
Так почему вам так не нравится выражение каждый байт разделить на 2?
|
|
min@y™ (статус: Доктор наук), 27 июня 2010, 19:07 [#17]:
Цитата (SOA):
Да отчего так считаете?
Я никогда ничего не считаю. За меня компьютеры считают.
Цитата (SOA):
Внутрь BASS заглядывали или исходники видели?
Смею огорчить: увы - не заглядывали и не видели.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
min@y™ (статус: Доктор наук), 27 июня 2010, 19:11 [#18]:
Цитата (SOA):
За мой русский не волнуйся
Да что ты! Никакого волнения, просто трудно понять, что ты хотел сказать.
Цитата (SOA):
про наивняк есть такое дело, но проходит.
IMHO, это не есть хорошо. Слово из трёх букв, однозначно идентифицирующее наивного человека, я здесь писать не буду: его и так все знают.
Цитата (SOA):
Так почему вам так не нравится выражение каждый байт разделить на 2?
Да потому что в wav-файле находится спектр изменения звукового сигнала, а не громкость от 0 до 255 в каждом байте. Всё намного сложнее, чем ты думаешь.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
SOA (статус: Посетитель), 27 июня 2010, 19:14 [#19]:
Про использование BASS.
Я терпеть ненавижу зависеть от кого либо или чего либо это раз. Если мне нужна только функция контроля звука, то все остальные только утежелят программу это два. Также я не знаю платная эта библиотека или бесплатная это три. Вобщем причин у меня для отказа от Bass много, да и просто интересно как оно реализуется вживую.
|
|
SOA (статус: Посетитель), 27 июня 2010, 19:17 [#20]:
Ну так и писал бы что спектр а не громкость а то вокруг да около.
|
Страницы: [1] [2] [Следующая »]
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|