Большой Воронежский Форум
Страница 1 из 6
1 23456 >
» Программирование>Музыка в С++
Спартак21 12:17 14.08.2011
Народ!
Огромная просьба!
Подскажите, как запустить музыку в программе GUI, И как регулировать в ней громкость???
Spectator 13:57 14.08.2011
1) DirectSound,
2) http://www.cyberguru.ru/programming/...rs-page48.html
3) В этих ваших Дельфях компонент до хрена.
К чему глас вопиющего, в google забанили?
Спартак21 14:24 14.08.2011
не приведи господи к делфи! Я на с! Надо прогу с музыкой написать)
Spectator 14:41 14.08.2011

Сообщение от Спартак21:
не приведи господи к делфи! Я на с! Надо прогу с музыкой написать)

Наш человек)))
Но в гугле тебя, тем не менее, явно забанили)))
http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx

З.Ы. Winmm.lib не забудь подключить. И обрати внимание на флаг SND_ASYNC. Без него функция не будет создавать отдельного потока.
Спартак21 15:03 14.08.2011
спасибо за ссылки)...в вирэ со мной случай произошел, когда за 3 дня консоль мадо было мнаписать) с тех пор с! Ну асм - обязаловка на мой взгляд)
Hopkroft 21:00 14.08.2011
Тема Музыка в С++.

Сообщение от Spectator:
3) В этих ваших Дельфях компонент до хрена

Моразм крепчает)) В Дельфе пишут на языке Дельфи а не на C++.
Такие забавные перлы выдаёшь - пиши ещё


Спартак21, Скачай книжку Гордеев программирование звука в windows там много примеров по работе со звуком на C++.
Спартак21 23:34 14.08.2011
Огромное спасибо, парни!!
Вы будете на "Ранчо" 28 августа???
Hopkroft 08:14 15.08.2011

Сообщение от Спартак21:
Огромное спасибо, парни!!

Попробуй ещё эту ссылку
http://win-web.ru/itbooks/open/sekunov_obrzvuka.html
Там есть книга и дискета с исходниками. У меня всё нормально скачалось.
З.Ы. Все примеры сделаны в VS
Hopkroft 08:29 15.08.2011

Сообщение от Спартак21:
в вирэ со мной случай произошел, когда за 3 дня консоль мадо было мнаписать) с тех пор с!

Так что произошло за эти 3 дня?
Spectator 09:05 15.08.2011

Сообщение от Hopkroft:
Моразм крепчает
)) В Дельфе пишут на языке Дельфи а не на C++.

Изыди, УГ.
мАразм. Шифруясь в школьные годы под 41 год, словарик открывать не помешает. А если тебе и в самом деле 41, то мне тебя искренне жаль.

Сообщение от Hopkroft:
Спартак21, Скачай книжку Гордеев программирование звука в windows там много примеров по работе со звуком на C++.

Hopkroft 09:29 15.08.2011

Сообщение от Spectator:
...словарик открывать не помешает...

Какой словарь?
Или ты не в курсе что

Сообщение от :
Начиная со среды разработки Delphi 7.0[3], в официальных документах Borland стала использовать название Delphi для обозначения языка Object Pascal.

Источник
Язык программирования Delphi
Ладно будем считать что ты с выходных не отошёл

Сообщение от :
А если тебе и в самом деле 41, то мне тебя искренне жаль.

На личность пытаешься перейти вместо аргументов?
Ай-ай-ай. Какой плохой, взрослый дядька
))

З.Ы.
И на будущее, возраст это ещё не повод надувать губы и строить из себя умника. Это тебе так...бесплатный совет.
Shtirliz 11:20 15.08.2011
Спартак21, я, конечно, понимаю, что это может быть избыточно, но я бы посоветовал смотреть в сторону не DirectSound, а более высокого уровня абстракции, DirectShow. Это позволит работать со всем имеющимся в системе инструментарием кодеков и воспроизводить почти любой доступный формат.
Ссылки:
рус., англ.
Spectator 00:14 16.08.2011

Сообщение от Shtirliz:
Спартак21, я, конечно, понимаю, что это может быть избыточно, но я бы посоветовал смотреть в сторону не DirectSound, а более высокого уровня абстракции, DirectShow.

Не надо во всякие гадости смотреть - COM/DCOM - это вообще зло, от которого уже и сам Microsoft открещивается потихоньку. Вот дать бы тебе и остальным "уровням абстракции" хоть на день знания ассемблера и отладчика, седые бы ходили как лынь от просмотра того что делают подобные "абстракции".
Hopkroft 07:52 16.08.2011

Сообщение от Spectator:
Вот дать бы тебе и остальным "уровням абстракции" хоть на день знания ассемблера и отладчика, седые бы ходили как лынь от просмотра того что делают подобные "абстракции".

Ты ври, да не завирайся. Ассемблер блин... Ты хоть раз звуковуху программировал под ДОСом?
У тебя хотя бы есть представление как сложно было учитывать спецификации различных производителей?
Например, каждая звуковуха обладала своими портами ввода-вывода, которые отличались от другой звуковухи (Приходилось делать автодетект). Плюс знания работы с DMA и прочие фишки.
Всё это чаще всего писалось на асме, хотя можно было и средствами языка высокого уровня с портами работать. Просто на асме удобнее было.

Думаю у тебя такого не было.

Так вот, подводя итоги.
Когда в руки попалась книжка с программированием звука под Винду, был приятно удивлён наличием различных фич, облегчающих работу со звуком, и позволяющих сконцентрироваться на других задачах.

А если не нравится технология и есть лучшие решения напиши её здесь

З.Ы. а может свою библиотеку на асме сделаешь?

З.Ы.Ы.
Твои посты огорчают пацанов с
wasm.ru!
Pengvin 07:54 16.08.2011
В том и прикол уровня абстракций, что не надо знать "что-там у него внутри". Если бы еще и знание того, как устроена архитектура x86 процессоров, то ослепли бы от того сколько legacy херни там есть.
Shtirliz 09:26 16.08.2011

Сообщение от Spectator:
Не надо во всякие гадости смотреть - COM/DCOM - это вообще зло, от которого уже и сам Microsoft открещивается потихоньку.

Толсто, чего уж там, 3/4 всех кодеков в windows поддерживают именно модель DirectShow, даже в Windows 7 MS частично использует для воспроизведение в Windows Media модель DirectShow совместно с Media Foundation.

Сообщение от Spectator:
Вот дать бы тебе и остальным "уровням абстракции" хоть на день знания ассемблера и отладчика, седые бы ходили как лынь от просмотра того что делают подобные "абстракции".

И что же там такое внутри страшное-то. Хотя, стоп, как-то глупо задавать вопросы звиздуну раздела Программирование
Spectator 09:31 16.08.2011

Сообщение от Hopkroft:
Ты ври, да не завирайся. Ассемблер блин... Ты хоть раз звуковуху программировал под ДОСом?
У тебя хотя бы есть представление как сложно было учитывать спецификации различных производителей?

Поддерживали две-три самых распространенных. Sound Blaster 16 / 32, AWE и Roland, и еще какая то была, не помню.

Сообщение от Hopkroft:
Например, каждая звуковуха обладала своими портами ввода-вывода, которые отличались от другой звуковухи (Приходилось делать автодетект). Плюс знания работы с DMA и прочие фишки.
Всё это чаще всего писалось на асме, хотя можно было и средствами языка высокого уровня с портами работать. Просто на асме удобнее было.

Думаю у тебя такого не было.

Все это и вручную настраивалось, автодетект хрен работал. Сам со звуком в те времена не работал на ПК, только на ZX.

Сообщение от Hopkroft:
Так вот, подводя итоги.

Ты путаешь развитие ОС и язык программирования. WinAPI, вместе со всеми виндовыми драйверами прекрасно эксплуатируется и из программы на ассемблере. Вот тебе и все итоги.
Shtirliz 10:01 16.08.2011

Сообщение от Spectator:
Ты путаешь развитие ОС и язык программирования. WinAPI, вместе со всеми виндовыми драйверами прекрасно эксплуатируется и из программы на ассемблере. Вот тебе и все итоги.

А можно гвозди микроскопом забивать или отверткой закручивать, чего уж там...
Hopkroft 10:25 16.08.2011

Сообщение от Spectator:
Поддерживали две-три самых распространенных.

А как же остальные? Или если у них не такие звуковые то пусть без звука сидят


Сообщение от Spectator:
Все это и вручную настраивалось, автодетект хрен
работал.

Сразу видно что ты со звуком не работал

Можно было порты просканировать, и если получен нужный ответ работать с ним. В своё время так делали Blizzard и прочие отцы
Но была вероятность нарваться на какую-нибудь хитрую звуковуху, где были специфические порты. Вот тогда и приходилось предлагать пользователю ввести значения.
Правда для тестирования предлагали юзеру послушать что там звуковуха воспроизведёт.

Сообщение от Spectator:
WinAPI, вместе со всеми виндовыми драйверами прекрасно эксплуатируется и из программы на ассемблере. Вот тебе и все итоги.

А стоит ли оно того?! Та-же баба маня, только с видом из окна и геморроем
))

Ладно, для примера можешь заглянуть в исходники, хотя-бы Quake 2. Там ребята работают с DirectSound на C и не парятся.
Может думаю стоит доверять успешным игроделам, чем мсье который серьёзно работал со звуком только на Спектруме?
Shtirliz 10:47 16.08.2011

Сообщение от Hopkroft:
чем мсье который серьёзно работал со звуком только на Спектруме?

В свете фееричного поста, где он ставит в один ряд z80 и 80286, а так же оглядываясь на предыдущие посты и высказывания "мсье" у меня есть некоторые сомнения не только в том, что "мсье" работал со звуком на Спектруме, но и в том, что "мсье" вообще писал что-то более менее серьезное.
Spectator 11:34 16.08.2011

Сообщение от Hopkroft:
А как же остальные? Или если у них не такие звуковые то пусть без звука сидят

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


Сообщение от Hopkroft:
Сразу видно что ты со звуком не работал

Можно было порты просканировать, и если получен нужный ответ работать с ним. В своё время так делали Blizzard и прочие отцы
Но была вероятность нарваться на какую-нибудь хитрую звуковуху, где были специфические порты. Вот тогда и приходилось предлагать пользователю ввести значения.
Правда для тестирования предлагали юзеру послушать что там звуковуха воспроизведёт.

На практике

Сообщение от :
автодетект хрен работал.

Не МОЙ автодетект, а уже написанный в играх.

Сообщение от Hopkroft:
А стоит ли оно того?! Та-же баба маня, только с видом из окна и геморроем
))

А я разве где-то призывал со звуком работать из АСМа или вообще писать на нем программы ЦЕЛИКОМ.
Видимо, что такое встроенный ассемблер и библиотеки ты попросту не знаешь, оттого и несешь чепуху)))

Сообщение от Hopkroft:
Ладно, для примера можешь заглянуть в исходники, хотя-бы Quake 2. Там ребята работают с DirectSound на C и не парятся.
Может думаю стоит доверять успешным игроделам, чем мсье который серьёзно работал со звуком только на Спектруме?

Попытка номер два - а я разве где-то призывал со звуком работать из АСМа?
Hopkroft 11:50 16.08.2011

Сообщение от Spectator:
Попытка номер два - а я разве где-то призывал со звуком работать из АСМа?

А вот это пук зачем был?

Сообщение от :
WinAPI, вместе со всеми виндовыми драйверами прекрасно эксплуатируется и из программы на ассемблере.

Просто так написал?

Давай заканчивай маструбировать на книги Криса Касперски. Не все йогурты одинаков полезны (с).

P.S. практически во всех приведённых книгах в этой теме была использована нелюбимая тобой технология. Скажу больше, иногда там писали с помощью MFC, от которой многих выворачивает наизнанку. Ты теперь всем будешь предлагать смотреть их код на асме?
Spectator 12:53 16.08.2011

Сообщение от Hopkroft:
А вот это пук зачем был?

К тому что:
Ты путаешь развитие ОС и язык программирования. WinAPI, вместе со всеми виндовыми драйверами прекрасно эксплуатируется и из программы на ассемблере. Вот тебе и все итоги.
Объясняю на пальцах - в винде можно пользоваться всеми драйверами / библиотеками / API функциями и прочим из ассемблера точно также как из этих ваших дельфей.

mov eax,[lpDDSBack] ; the pointer to the object instance
push eax ; param hidden by C++

mov eax,[eax] ; get vtable address
call [eax + DDS_Blt] ; call the Blt method

http://www.asmcommunity.net/board/in...p?topic=1177.0
О ужас, здесь даже идет работа с ООП. И вызов иксовой функции. И целых четыре строки кода.
Hopkroft 13:07 16.08.2011

Сообщение от Spectator:
Объясняю на пальцах - в винде можно пользоваться всеми драйверами / библиотеками / API функциями и прочим из ассемблера точно также как из этих ваших дельфей.

Какие нафиг Дельфи? (!Spectator прекращай бухать на работе!)

Ты хочешь мне доказать что вместо того что-бы использовать какой-то интерфейс, лучше будет использовать обращение напрямую?
Естественно можно это и на асме изобразить, правда мало кто так делает.

Сообщение от :
О ужас, здесь даже идет работа с ООП. И вызов иксовой функции. И целых четыре строки кода.

А зачем?
Или ты наивно полагаешь что если я вызову какую-нибудь иксовую функцию на асме то она у меня быстрее заработает?

P.S.
тут пацаны интернет магазин на Lispe делали. И что теперь всем надо делать интернет-магазины на Лиспе?!
Spectator 13:31 16.08.2011

Сообщение от Hopkroft:
Какие нафиг Дельфи? (!Spectator прекращай бухать на работе!)

Это ты лучше думать начинай и читать, а не фантазировать.

Сообщение от Hopkroft:
Или ты наивно полагаешь что если я вызову какую-нибудь иксовую функцию на асме то она у меня быстрее заработает?

А теперь разуй глапза, внимательно посмотри на начало темы и увидишь что я ВООБЩЕ ПРО АСМ не я начал говорить. И ничего такого не предлагал. С хрена ли ты меня спрашивашь - зачем здесь асм?
Shtirliz 13:43 16.08.2011

Сообщение от Spectator:
О ужас, здесь даже идет работа с ООП. И вызов иксовой функции. И целых четыре строки кода.

Сферический пример в вакууме... К тому же скопи3.14зженный с форума, к тому же где код получения ссылки на экземпляр объекта, где код получения смещения для метода, а если метод получает параметры?
Hopkroft 13:45 16.08.2011

Сообщение от Spectator:
Это ты лучше думать начинай и читать, а не фантазировать.

Было бы величайшей ошибкой думать над твоими постами, подобного содержания.

Сообщение от Spectator:
А теперь разуй глапза, внимательно посмотри на начало темы и увидишь что я ВООБЩЕ ПРО АСМ не я начал говорить. И ничего такого не предлагал. С хрена ли ты меня спрашивашь - зачем здесь асм?

Это кто писал, Вася Пупкин?!

Сообщение от :
mov eax,[lpDDSBack] ; the pointer to the object instance
push eax ; param hidden by C++

mov eax,[eax] ; get vtable address
call [eax + DDS_Blt] ; call the Blt method

В каждую дырку свой асм суёшь. А потом ещё спрашиваешь при чём здесь асм


P.S. заметь я не придираюсь к твоим грамматическим ошибкам, т.к. у нас тут не форум любителей русского языка и чистописания.
Spectator 13:51 16.08.2011

Сообщение от Shtirliz:
Сферический пример в вакууме... К тому же скопи3.14зженный с форума, к тому же где код получения ссылки на экземпляр объекта,

mov eax,[lpDDSBack] ; the pointer to the object instance

Сообщение от Shtirliz:
где код получения смещения для метода,

Берем начало vtable
mov eax,[eax] ; get vtable address

Смещаемся на DDS_Blt для получения адреса Blt и вызываем
call [eax + DDS_Blt] ; call the Blt method

Сообщение от Shtirliz:
а если метод получает параметры?

через push они кладутся в стек перед вызовом, конечно
Shtirliz 14:47 16.08.2011
Spectator, ты сделал мой день!!! Так ты еще и в ассемблере ничего не понимаешь , а просто цитируешь умные книжки и форумы...
Во-первых, где инициализация.
Во-вторых, если вы не удосужились вписать соответствующие инклуды, и не объявили lpDDSBack и DDS_Blt, то этот код просто некорректен.
Ну и, наконец, а если метод возвращает что-то сложнее целого начинает полный любви и обажания процесс обработки полученных данных

Сообщение от Hopkroft:
Это кто писал, Вася Пупкин?!

Это писал некто, BogdanOntanu, ASM Fanatic. Spectator, ИМХО, догадался, что делает этот код исключительно по комментариям после каждой команды
Spectator 15:52 16.08.2011

Сообщение от Shtirliz:
Spectator, ты сделал мой день!!! Так ты еще и в ассемблере ничего не понимаешь
, а просто цитируешь умные книжки и форумы...

Это конкретный вызов. Функции из DirectX, аналог строки кода из C++, какая инициализация тебе нужна?

Сообщение от Shtirliz:
Ну и, наконец, а если метод возвращает что-то сложнее целого начинает полный любви и обажания процесс обработки полученных данных

И чем же он отличается от сишного? Все так же абсолютно - через простые переменные или структуры по ссылке.

Сообщение от Shtirliz:
Это писал некто, BogdanOntanu, ASM Fanatic. Spectator, ИМХО, догадался, что делает этот код исключительно по комментариям после каждой команды

Не надо догадываться, я вполне неплохо знаю ассеблер x86.
Страница 1 из 6
1
23456 >
Вверх