| 
| 
 | Вопрос # 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] [Следующая »]  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |