|
|
|
| Вопрос прост и понятен: надо воспроизвести звук ТОЛЬКО средствами windows API. Возможно ли такое? Формат звука - mp3 или wav. если есть другие возможные форматы - буду рад о них услышать. | |
|
|
|
|
|
|
|
для: alex19921992
(20.03.2007 в 16:09)
| | WAV-файл можно проиграть при помощи фукцнии PlaySound()
PlaySound ("filename.wav", NULL, SND_FILENAME | SND_ASYNC); |
| |
|
|
|
|
|
|
|
для: cheops
(21.03.2007 в 13:02)
| | ошибка, однако...
Linking...
main.obj : error LNK2001: unresolved external symbol __imp__PlaySoundA@12
Release/myapi.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
myapi.exe - 2 error(s), 0 warning(s) | |
|
|
|
|
|
|
|
для: alex19921992
(21.03.2007 в 15:10)
| | Хм... это Visual Studio? Заголовочный файл windows.h подключаете?
| |
|
|
|
|
|
|
|
для: cheops
(21.03.2007 в 22:09)
| | Действительно, есть такая ошибка, причем и с <windows.h>...
PlaySound() объявлена в winmm.dll, можно попробовать загрузить ее напрямую | |
|
|
|
|
|
|
|
для: Фитч
(22.03.2007 в 09:46)
| | Естественно, windows.h подключена, ибо - Win API! А как загружать длл-ки, я не знаю, может объясните? | |
|
|
|
|
|
|
|
для: alex19921992
(22.03.2007 в 12:28)
| | Надо собрать проект, подключив к нему библиотеку Winmm.lib
В VS2005 для этого надо на проекте щелкнуть правой кнопкой и выбрать Properties
Далее выбрать Configuration Properties -> Linker -> Input и в поле Additional Dependencies
прописать Winmm.lib
В другой студии или другой среде это будет немножко в другом месте, но смысл тот-же -
Winmm.lib надо указать в качестве входного файла линкера.
При этом проект будет связан с DLL-кой и при загрузке программы система подгрузит и её. | |
|
|
|
|
|
|
|
для: oleg_alexeev
(22.03.2007 в 13:07)
| | Спасибо, в 2005-й все работает. Кстати, что означают параметры в скобках вроде SND_FILENAME | SND_ASYNC? | |
|
|
|
|
|
|
|
для: alex19921992
(22.03.2007 в 13:47)
| | Там тоже есть список входных файлов линкера. Только не помню где :(
Но тоже в свойствах проекта -> свойства линкера (там это табы вроде-бы) | |
|
|
|
|
|
|
|
для: oleg_alexeev
(22.03.2007 в 13:54)
| | Да, спасибо, разобрался. что означают параметры в скобках вроде SND_FILENAME | SND_ASYNC? | |
|
|
|
|
|
|
|
для: alex19921992
(22.03.2007 в 14:05)
| | SND_FILENAME означает, что первый параметр это имя файла на диске.
SND_ASYNC - играть файл надо асинхронно, т.е. функция возвращает управление сразу же, а звук
продолжает играть. Для прерывания надо вызвать PlaySound с первым параметром = NULL. | |
|
|
|
|
|
|
|
для: oleg_alexeev
(23.03.2007 в 10:16)
| | Спасибо, все понял. А что означает второй параметр(НУЛЛ)? и какие еще бывают дополнительные параметры кроме SND_FILENAME и SND_ASYNC? | |
|
|
|
|
|
|
|
для: alex19921992
(22.03.2007 в 14:05)
| | это параметры проигрывания звука:
SND_ACYNC - функция возвращает управление программе сразу после вызова
SND_LOOP - циклическое воспроизведение до вызова PlaySound(NULL,0)
SND_SYNC - функция блокирует программу на время воспроизведения
SND_PURGE - прекращает воспроизведение всех звуков для этой задачи
Есть, по-моему, еще параметры... | |
|
|
|
|
|
|
|
для: Фитч
(23.03.2007 в 17:50)
| | Ой! А mp3-шки не играет! как быть? | |
|
|
|