Старый 31.08.2011, 13:23   #121   
Registered User
 
Сообщений: 1,114
Регистрация: 23.06.2007
Возраст: 56

Hopkroft вне форума Не в сети
Цитата:
Сообщение от Спартак21 Посмотреть сообщение
..и вопрос возникает сразу, но это по философии С++: развежно можно lib файл в код вставлять??? Заголовок - да!
Подключаешь к проекту lib. Когда происходит сборка проекта Линковщик сам выдернет нужный код из lib файла.

Инструкция:

Цитата:
With the help of my colleage, I have solved the the problem when compiling with the PlaySound function. Here is the solution:
1. Include the following header files in this order:
#include "windows.h"
#include "mmsystem.h"
2. follow the following steps to add winmm.lib to the linker (assuming Visual Studio 2010):
a. Right click the project name in the Solution Explorer and select "Property".
b. On the left pane of the Property window, select "Linker" and then "Input"
c. On the right pane, type winmm.lib in the "Additional Dependencies" row.
d. Click "Apply" and then "OK".
You are now ready to compile and play .wav files.
Инструкция была взята из ссылки которую я тебе раньше выкладывал(которая на MSND).

Если не разберёшься я тебе скину проект с уже прикрученным lib ом. Но лучше разберись с этим вариантом. Т.к. такие фишки будут тебе в дальнейшем полезны.
 
Старый 31.08.2011, 13:28   #122   
Registered User
 
Сообщений: 1,114
Регистрация: 23.06.2007
Возраст: 56

Hopkroft вне форума Не в сети
Цитата:
Сообщение от Спартак21 Посмотреть сообщение
Не, книжку саму просматривал, но видимо не так усердно, как вы того желали!)
Парни, дальше хуже будет
Но всё равно огромное вам всем спасибо
Так у тебя разрядность винды какая 64 или 32?
 
Старый 31.08.2011, 13:35   #123   
бибизьян
 
Аватар для aerin
 
Сообщений: 3,031
Регистрация: 17.02.2004

aerin вне форума Не в сети
Если собирать MS VC, то можно просто прямо в коде написать
#pragma comment( lib, "winmm.lib" )
 
Старый 31.08.2011, 13:47   #124   
Registered User
 
Аватар для Спартак21
 
Сообщений: 402
Регистрация: 14.11.2007
Возраст: 37

Спартак21 вне форума Не в сети
32 бит. Все хорошо, но в билере борланд делаю.
 
Старый 31.08.2011, 13:55   #125   
Форумец
 
Аватар для Spectator
 
Сообщений: 39,990
Регистрация: 27.05.2003
Возраст: 46

Spectator вне форума Не в сети
Цитата:
Сообщение от Спартак21 Посмотреть сообщение
Не срабатывает вот что:
PlaySound( "адрес файла", NULL, SND_FILENAME);
...Ну, а книжку уже приходится штудировать, ибо дальше - хуже!
Спектатор, Хопкрофт, почему меня в друзья не добавляете???
Вы мне реально очень сильно помогаете, и я в долгу пред Вами не останусь!
Даю слово!!!
Как не срабатывает? Что возвращает функция?
В друзья я никого не добавляю, просто потому что не понимаю - нахрен это нужно.
И что подразумевается под "адресом файла"? Ты часом не пытаешься по интернетовской ссылке файл проиграть?
 
Старый 31.08.2011, 14:02   #126   
Форумец
 
Аватар для Spectator
 
Сообщений: 39,990
Регистрация: 27.05.2003
Возраст: 46

Spectator вне форума Не в сети
И еще раз прошу - приведи полностью именно ту строку что у тебя в программе, может ты со слешами перемудрил, может еще что. Или ты там какой секретный файл проигрывать пытаешься?))))
 
Старый 31.08.2011, 16:58   #127   
Registered User
 
Аватар для Спартак21
 
Сообщений: 402
Регистрация: 14.11.2007
Возраст: 37

Спартак21 вне форума Не в сети
адрес файла:
D:\hhh.wav
 
Старый 31.08.2011, 17:06   #128   
Registered User
 
Сообщений: 1,114
Регистрация: 23.06.2007
Возраст: 56

Hopkroft вне форума Не в сети
Цитата:
Сообщение от Спартак21 Посмотреть сообщение
адрес файла:
D:\hhh.wav
Вообщем, в архиве проект под MS VC. Откомпилированный файл называется, StandardPlay.exe. Также там будет файлик wav.

Запускать из командной строки ( кнопки сам прикрутишь, не маленький ):
StandardPlay.exe windows.wav

Сам проект включает WinMM.lib. версия должна подойти. У меня на MS VS 2008, собрался без проблем.

P.S. где будет выбор устройства поставь то что используется у тебя в системе. А то может не проиграть.
Вложения
Тип файла: rar test.rar (313.7 Кб, 7 просмотров)

Последний раз редактировалось Hopkroft; 31.08.2011 в 17:31.
 
Старый 31.08.2011, 17:14   #129   
Форумец
 
Аватар для Spectator
 
Сообщений: 39,990
Регистрация: 27.05.2003
Возраст: 46

Spectator вне форума Не в сети
Цитата:
Сообщение от Спартак21 Посмотреть сообщение
адрес файла:
D:\hhh.wav
Так писал? Обрати вниманиие на количество слешей.
PlaySound( "D:\\hhh.wav", NULL, SND_FILENAME);
 
Старый 31.08.2011, 20:09   #130   
Registered User
 
Аватар для Спартак21
 
Сообщений: 402
Регистрация: 14.11.2007
Возраст: 37

Спартак21 вне форума Не в сети
Цитата:
Сообщение от Spectator Посмотреть сообщение
Как не срабатывает? Что возвращает функция?
В друзья я никого не добавляю, просто потому что не понимаю - нахрен это нужно.
И что подразумевается под "адресом файла"? Ты часом не пытаешься по интернетовской ссылке файл проиграть?
Ты меня за дебила в жёсткой форме принимаешь
 
Старый 31.08.2011, 20:25   #131   
Registered User
 
Сообщений: 1,114
Регистрация: 23.06.2007
Возраст: 56

Hopkroft вне форума Не в сети
Спартак21, как успехи лучше напиши? проигрался файл?
 
Старый 31.08.2011, 20:30   #132   
Registered User
 
Аватар для Спартак21
 
Сообщений: 402
Регистрация: 14.11.2007
Возраст: 37

Спартак21 вне форума Не в сети
Пока нет!
Пока ещё завал АЧХ на нижних частотах!!
Фильтр Баттэрворта - жесткая штука
...пардон за ВИРЭшный слэнг, но если представить, что весь мир = большая задница, то я нахожусь, что ещё чуть-чуть и будет прямая кишка))))))))))))))
 
Старый 31.08.2011, 20:51   #133   
Форумец
 
Аватар для Spectator
 
Сообщений: 39,990
Регистрация: 27.05.2003
Возраст: 46

Spectator вне форума Не в сети
Цитата:
Сообщение от Спартак21 Посмотреть сообщение
Ты меня за дебила в жёсткой форме принимаешь
нет) но и не называй путь ссылкой.
и все же - что возвращает функция? Я же неспроста спрашиваю.
и еще - сразу попробуй указать флаги либо SND_SYNC либо SND_ASYNC (по очереди, понятно, они несовместимы, я помню с ними были грабли)
я бы попробовал, но на работе звуковухи нет, а здесь, дома - позавчерашняя практически винда, еще не успел весь хлам поставить.
 
Старый 31.08.2011, 22:19   #134   
Registered User
 
Аватар для Спартак21
 
Сообщений: 402
Регистрация: 14.11.2007
Возраст: 37

Спартак21 вне форума Не в сети
Цитата:
Сообщение от Spectator Посмотреть сообщение
нет) но и не называй путь ссылкой.
и все же - что возвращает функция? Я же неспроста спрашиваю.
и еще - сразу попробуй указать флаги либо SND_SYNC либо SND_ASYNC (по очереди, понятно, они несовместимы, я помню с ними были грабли)
я бы попробовал, но на работе звуковухи нет, а здесь, дома - позавчерашняя практически винда, еще не успел весь хлам поставить.
голую функцию вставлял: PlaySound( и т.д.)
Как мне путь тогда задавать??? Так же, как и в MSDN, т.е. TEXT(D:\\...)???
 
Старый 31.08.2011, 22:49   #135   
Форумец
 
Аватар для Spectator
 
Сообщений: 39,990
Регистрация: 27.05.2003
Возраст: 46

Spectator вне форума Не в сети
Цитата:
Сообщение от Спартак21 Посмотреть сообщение
голую функцию вставлял: PlaySound( и т.д.)
Как мне путь тогда задавать??? Так же, как и в MSDN, т.е. TEXT(D:\\...)???
если напишешь PlaySoundA, то можно и без макроса TEXT (иначе зависит от настроек - какие функции по умолчанию используются, widechar или нет, я предпочитаю всегда писать явно), двойной слеш обязателен в любом случае.
 
Старый 01.09.2011, 14:27   #136   
Registered User
 
Аватар для Спартак21
 
Сообщений: 402
Регистрация: 14.11.2007
Возраст: 37

Спартак21 вне форума Не в сети
спешу опечалить, но музыка не запускается(
 
Старый 01.09.2011, 14:36   #137   
бибизьян
 
Аватар для aerin
 
Сообщений: 3,031
Регистрация: 17.02.2004

aerin вне форума Не в сети
Спартак21, ну, исправь чего-нибудь в программе, чтоб запускалась.

ЗЫ. Какого ответа ты ждешь? Телепаты из отпуска не выходили.
 
Старый 01.09.2011, 14:52   #138   
Форумец
 
Аватар для Spectator
 
Сообщений: 39,990
Регистрация: 27.05.2003
Возраст: 46

Spectator вне форума Не в сети
Цитата:
Сообщение от Спартак21 Посмотреть сообщение
спешу опечалить, но музыка не запускается(
Скопируй файл C:\WINDOWS\Media\ding.wav в папку с exe файлом
напиши PlaySound("ding.wav", NULL, SND_FILENAME | SND_ASYNC);
Откомпилируй программу. Запусти exe файл из проводника, а не из под среды, посмотри что получилось.
 
Старый 01.09.2011, 15:10   #139   
Registered User
 
Аватар для Спартак21
 
Сообщений: 402
Регистрация: 14.11.2007
Возраст: 37

Спартак21 вне форума Не в сети
...Он брал бритву и ею правил себя(Наутилус)
 
Старый 01.09.2011, 15:17   #140   
Registered User
 
Аватар для Спартак21
 
Сообщений: 402
Регистрация: 14.11.2007
Возраст: 37

Спартак21 вне форума Не в сети
Цитата:
Сообщение от Spectator Посмотреть сообщение
Скопируй файл C:\WINDOWS\Media\ding.wav в папку с exe файлом
напиши PlaySound("ding.wav", NULL, SND_FILENAME | SND_ASYNC);
Откомпилируй программу. Запусти exe файл из проводника, а не из под среды, посмотри что получилось.
Потянула машинка! Супер! Браво!!!
...только у меня вопрос, Spectator: почему этот грёбаный компилятор не захотел файл по адресу проигрывать???
 
Старый 01.09.2011, 18:02   #141   
Форумец
 
Аватар для Spectator
 
Сообщений: 39,990
Регистрация: 27.05.2003
Возраст: 46

Spectator вне форума Не в сети
Цитата:
Сообщение от Спартак21 Посмотреть сообщение
Потянула машинка! Супер! Браво!!!
...только у меня вопрос, Spectator: почему этот грёбаный компилятор не захотел файл по адресу проигрывать???
Потому что я в самом начале просил - дай мне конкретную строку из твоих исходников. Я же не знаю что ты пишешь.
 
Старый 01.09.2011, 18:29   #142   
Registered User
 
Аватар для Спартак21
 
Сообщений: 402
Регистрация: 14.11.2007
Возраст: 37

Спартак21 вне форума Не в сети
Вопрос в силе: почему при написании адреса типа D:\\ttt\exc.wav файл не проигрывался, а адрес файла u.wav и рядом с программой проигрывается???
 
Старый 01.09.2011, 18:40   #143   
Форумец
 
Аватар для Spectator
 
Сообщений: 39,990
Регистрация: 27.05.2003
Возраст: 46

Spectator вне форума Не в сети
Цитата:
Сообщение от Спартак21 Посмотреть сообщение
Вопрос в силе: почему при написании адреса типа D:\\ttt\exc.wav файл не проигрывался, а адрес файла u.wav и рядом с программой проигрывается???
Потому что надо писать D:\\ttt\\exc.wav, найди 10 различий)))
 
Старый 01.09.2011, 18:45   #144   
Registered User
 
Сообщений: 1,114
Регистрация: 23.06.2007
Возраст: 56

Hopkroft вне форума Не в сети
Цитата:
Сообщение от Спартак21 Посмотреть сообщение
Вопрос в силе: почему при написании адреса типа D:\\ttt\exc.wav файл не проигрывался, а адрес файла u.wav и рядом с программой проигрывается???
Прочитай про управляющие символы которые используются в строке. И тут же поймёшь причину
 
Старый 01.09.2011, 18:59   #145   
Registered User
 
Аватар для Спартак21
 
Сообщений: 402
Регистрация: 14.11.2007
Возраст: 37

Спартак21 вне форума Не в сети
Цитата:
Сообщение от Hopkroft Посмотреть сообщение
Прочитай про управляющие символы которые используются в строке. И тут же поймёшь причину
Так-с! Уже интереснее
...управляющие символы в С++ или winAPI???
 
Старый 01.09.2011, 19:06   #146   
Форумец
 
Аватар для Spectator
 
Сообщений: 39,990
Регистрация: 27.05.2003
Возраст: 46

Spectator вне форума Не в сети
Цитата:
Сообщение от Спартак21 Посмотреть сообщение
Так-с! Уже интереснее
...управляющие символы в С++ или winAPI???
WinAPI в данном случае не виноват. Виноват компилятор C++, который съел в строке первую букву имени файла обратным слэшем который ты по незнанию написал один. Для того чтобы вставить в строку \ надо писать \\.
 
Старый 01.09.2011, 21:27   #147   
Registered User
 
Аватар для Спартак21
 
Сообщений: 402
Регистрация: 14.11.2007
Возраст: 37

Спартак21 вне форума Не в сети
...вот ещё один вопрос!
Читаю Гордеева про звук и обращаю внимание на хэндл устройства воспроизведения, получаемый вызовом waveOutOpen.
Вопрос: есть ли запасный вариант получения хэндла? если есть, то какой?
 
Старый 01.09.2011, 21:55   #148   
Форумец
 
Аватар для Spectator
 
Сообщений: 39,990
Регистрация: 27.05.2003
Возраст: 46

Spectator вне форума Не в сети
Цитата:
Сообщение от Спартак21 Посмотреть сообщение
...вот ещё один вопрос!
Читаю Гордеева про звук и обращаю внимание на хэндл устройства воспроизведения, получаемый вызовом waveOutOpen.
Вопрос: есть ли запасный вариант получения хэндла? если есть, то какой?
Для работы со звуком есть масса ШТАТНЫХ способов WinAPI/DirectSound. Между собой несоместимых. Это раз.

HANDLE - это внутренняя переменная КОНКРЕТНОЙ библиотеки.

ты можешь получить HANDLE с помощью CreateFile (по иронии, ей же файлы и открывают, а не только создают), но с этим хэндлом ничего большего чем записать/считать/обнулить содержимое файла ты сделать не сможешь. И передать его в функцию проигрывания - не сможешь тоже.

Это два.

Начинать разговор нужно с того - ЧТО тебе НУЖНО СДЕЛАТЬ - это три.
 
Старый 01.09.2011, 21:59   #149   
Форумец
 
Аватар для Spectator
 
Сообщений: 39,990
Регистрация: 27.05.2003
Возраст: 46

Spectator вне форума Не в сети
и да - пытаться понять WinAPI через книгу Гордеева про звук, не понимая сущность WinAPI и вообще внутреннее устройство винды - это заведомо путь в болото.
 
Старый 01.09.2011, 22:15   #150   
Registered User
 
Аватар для Спартак21
 
Сообщений: 402
Регистрация: 14.11.2007
Возраст: 37

Спартак21 вне форума Не в сети
ок!
Мне необходимо изменять громкость при проигрывании файла, т.е. PlaySound(...) & waveOutSetVolume(...).
Как изменить громкость?
 
Поиск в теме: 



Быстрый переход:

  Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Support by DrIQ & Netwind