Вопрос о проигрывании файла wav

Вопрос о проигрывании файла wav

Кто-нибудь знает, как в С++ фоном играть файл wav ?

Спасибо!

А как смотреть функции в MSDN ?
Подскажите, пожалуйста. А то я загрузила Вашу ссылку.
Реализовала функцию PlaySound(TEXT(«V008.wav»), NULL, SND_FILENAME);
При компиляции появляется ошибка:
fatal error LNK1120: 1 неразрешенных внешних элементов

Смотреть функции в MSDN надо внимательно. Читать, изучать примеры, смотреть статьи по перекрёстным ссылкам. Информации там море, только организована она в стиле Microsoft — через ж.

В опциях проекта для сборки (linker) необходимо подключить библиотеку winmm.lib (для gcc libwinmm.a). В конце статьи (по ссылке) библиотека указана.

Ещё, если надо «фоном играть файл wav», я бы посоветовал использовать флаг SND_ASYNC.

Я написала программку, в которой угадываются слова по буквам.
В начале игры пользователь задаёт себе количество попыток.
Я бы хотела, чтобы во время угадывания играла фоновая музыка (скажем, 1.wav). Если бы слово не отгадывалось за отведённое количество попыток, то играла бы грустная музыка (2.wav).
А в случае угадывания — радостная музыка. Естественно, названия музыкальных файлов можно изменить. Кстати, я их поместила в папку с проектом.
А теперь, внимание, вопрос:
с помощью каких строчек проигрываются эти музыкальные файлы?

Olly, ты уже написала почти нужную строчку. Единственно, что нужно добавить — это флаг асинхронного воспроизведения:

PlaySound(TEXT("1.wav"), NULL, SND_FILENAME | SND_ASYNC);

Для смены музыки просто пишешь такой же вызов функции, но с другим wav-файлом.

У тебя получилось подключить библиотеку winmm?

Slonopotam, большое спасибо! Здесь хотя бы на русском... откуда источник?

Slonopotam, большое спасибо! Здесь хотя бы на русском...
Откуда источник?

Если я пишу строчку
PlaySound(TEXT(«V008.wav»), NULL, SND_FILENAME | SND_ASYNC);
то при компиляции (клавиша F7) вылезает ошибка:

fatal error LNK1120: 1 неразрешенных внешних элементов

Режим труъ-прогера — on

Здесь хотя бы на русском...

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

Cranium, я написала вверху программы #include <Winmm.lib>,
так она подчёркивает include красным цветом и при нажатии на него пишет: «Не удается открыть источник файл Winmm.lib»

Лучше сразу привыкать читать на английском

Ok

Давайте будем считать, что вы уже знаете, как создавать каркас Win32 или MFC-приложения с помощью меню File -> New -> Project -> MFC Application (или Win32...).

Это где набирать?

Откуда источник?

Отсюда:
http://www.google.ru

Давайте будем считать, что вы уже знаете, как создавать каркас Win32 или MFC-приложения с помощью меню File -> New -> Project -> MFC Application (или Win32...).

Ты уже умеешь. Имеется в виду создание пустого проекта «Консольное приложение Win32»

Чтобы всё работало нужно:

1) Присоединить библиотеку <Winmm.lib> к проекту. В первой ссылке не совсем понятно прописано как это делать. Посмотри здесь

Это тот же сайт, другая страница. Присоединение библиотеки выделено другим шрифтом.

2) Подключить заголовочные файлы

#include <Windows.h>
#include <MMSystem.h>

именно в таком порядке. Поменяешь местами будет ошибка.

Явно подключать MMSystem.h не обязательно. Оно включается посредством Windows.h.

Slonopotam,

Отсюда:
http://www.google.ru

А я всегда инфу ищу в Яндексе...

Ты уже умеешь. Имеется в виду создание пустого проекта «Консольное приложение Win32»

Вот оно как... Я всегда создаю пустой проект.

Такое ощущение, что ты продвинутый и знаешь больше меня.

Slonopotam , прочитала другую страницу вашего сайта.
Дело в том, что у меня версия Microsoft Visual Studio 2010 написана на русском языке.

В Visual C++ проектах это делается так: (1) наведите мышку на имя проекта в Solutions Explorer

Ну и куда её наводить?

А вот для этого и нужен английский. В крайнем случае яндекс переводчик или его аналог

Правый клик на заголовке проекта в Обозревателе решений (окно слева). В самом низу «свойства». Далее: Свойства конфигурации / Компоновщик / Ввод / Дополнительные зависимости. В эту строку дописываешь «winmm.lib;» Вверху слева выпадающий список «Конфигурация» выбираешь по очереди «debug» и «release». Строка «winmm.lib;» должна быть в обоих этих случаях.

Такое ощущение, что ты продвинутый

Разве что продвинутый нуб!

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.

Ответить

Вы можете использовать разметку markdown для оформления комментариев и постов. Используйте функцию предпросмотра для проверки корректности разметки.

Пожалуйста, оформляйте исходный код в соответствии с правилами разметки. Для того, чтобы вставить код в комментарий, скопируйте его в текстовое поле ниже, после чего выделите то, что скопировали и нажмите кнопку «код» в панели инструментов. Иначе ваш код может принять нечитаемый вид.

Либо производите оформление кода вручную, следующим образом:

``` #include <iostream> using namespace std; int main() { // ... } ```

Предпросмотр сообщения

Ваше сообщение пусто.