Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Hastings
1 / 1 / 0
Регистрация: 29.08.2014
Сообщений: 33
#1

PlaySound или аналог для проигрывания двух и более звуков - C++

29.08.2014, 00:37. Просмотров 473. Ответов 8
Метки нет (Все метки)

Добрый день, изучаю C++, сейчас мне нужно, чтобы проигрывался звук, я нашёл такую ф-цию как PlaySound() покопавшись здесь http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx
я так и не понял, можно ли сделать так, чтобы проигрывались 2 музыкальных файла одновременно? Например 1 на фоне всё время, а другой при нажатии кнопки и т.д. Если нельзя, с помощью PlaySound и библиотеки MMsystem, то, что вы посоветуете вместе этого? Обязательно ли создавать более меньский проигрыватель с каналами или что там ?
Спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.08.2014, 00:37     PlaySound или аналог для проигрывания двух и более звуков
Посмотрите здесь:

как можно более просто написать эту программку(более понятным языком для начинающего) C++
Программа для записи звуков. C++
C++ Входит ли буква в заданною строку не более двух раз
C++ Номера столбцов в которых находиться более двух простых чисел
Есть ли в С аналог функции explode(или split)? C++
Найти число пассажиров, имеющих более двух вещей и... C++
Вывод двух и более слов C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Toshkarik
1139 / 856 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
29.08.2014, 00:56     PlaySound или аналог для проигрывания двух и более звуков #2
С помощью PlaySound можно проиграть только один файл. Попробуйте почитать о DirectSound.
castaway
Эксперт С++
4873 / 3012 / 370
Регистрация: 10.11.2010
Сообщений: 11,061
Записей в блоге: 10
Завершенные тесты: 1
29.08.2014, 07:51     PlaySound или аналог для проигрывания двух и более звуков #3
Можно. Используй флаг SND_ASYNC.
AlexVRud
440 / 150 / 38
Регистрация: 04.07.2014
Сообщений: 425
29.08.2014, 10:11     PlaySound или аналог для проигрывания двух и более звуков #4
Цитата Сообщение от Hastings Посмотреть сообщение
Добрый день, изучаю C++, сейчас мне нужно, чтобы проигрывался звук
Рано или поздно, надо будет учится искать и использовать и сторонние библиотеки.
Если считаешь, что готов, то можешь ещё посмотреть и в сторону SDL_mixer
Hastings
1 / 1 / 0
Регистрация: 29.08.2014
Сообщений: 33
29.08.2014, 14:06  [ТС]     PlaySound или аналог для проигрывания двух и более звуков #5
Цитата Сообщение от castaway Посмотреть сообщение
Можно. Используй флаг SND_ASYNC.
Как я понял, этот флаг лишь позволяет заниматься другими делами, пока проигрывается звук, если я после поставлю ещё 1 ф-цию PlaySound, то она прекратит предыдущий звук и начнёт новый. Мне нужно, чтобы первый продолжал играть.
Цитата Сообщение от Toshkarik Посмотреть сообщение
Попробуйте почитать о DirectSound.
Это из DirectX? Нужно скачать и разбираться с этим http://www.microsoft.com/en-ca/downl...s.aspx?id=6812
Или какие-то другие библиотеки?
castaway
Эксперт С++
4873 / 3012 / 370
Регистрация: 10.11.2010
Сообщений: 11,061
Записей в блоге: 10
Завершенные тесты: 1
29.08.2014, 15:17     PlaySound или аналог для проигрывания двух и более звуков #6
Да. Действительно. Пардоньте. Тогда waveOut можно использовать из winmm.
Toshkarik
1139 / 856 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
29.08.2014, 16:56     PlaySound или аналог для проигрывания двух и более звуков #7
Hastings, да, с этим. Ну или можете использовать библиотеку BASS.
Hastings
1 / 1 / 0
Регистрация: 29.08.2014
Сообщений: 33
30.08.2014, 12:58  [ТС]     PlaySound или аналог для проигрывания двух и более звуков #8
Спасибо за ответы) Понравилась BASS(хотя она с лицензией ), и не могу найти внятного урока или объяснений ф-ций DirectSound или как вообще пользоваться, был бы рад вашей помощи здесь.
Решил я покопаться дальше с PlaySound() и нашёл такой флаг SND_NOSTOP
Написано в нём следующие:
The specified sound event will yield to another sound event that is already playing in the same process. If a sound cannot be played because the resource needed to generate that sound is busy playing another sound, the function immediately returns FALSE without playing the requested sound.

If this flag is not specified, PlaySound attempts to stop any sound that is currently playing in the same process. Sounds played in other processes are not affected.

Как я понял, он должен играть новый файл, но ПОВЕРХ предыдущего, у меня он вообще ничего не играет и не прерывает.
Написано про ресурсы, но я не знаю, про какие имеется ввиду(
Во 2 абзаце написано, что звуки в других процессах не будут останавливаться, как создать другой процесс?))

У меня такой код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <Windows.h>
#include <MMSystem.h>
#include <conio.h>
using namespace std;
 
void main(){ 
bool s=PlaySound(TEXT("rectest.wav"), NULL, SND_LOOP | SND_ASYNC);
    cout<<s;
_getch();
 
s=PlaySound(("ss.wav"), NULL, SND_NOSTOP | SND_ASYNC);
cout<<s;
_getch();
}
Переменная s, для отслеживания TRUE FALSE

Добавлено через 18 часов 36 минут
ап.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.09.2014, 23:43     PlaySound или аналог для проигрывания двух и более звуков
Еще ссылки по теме:

Удаление двух или более подряд стоящих нулей в одномерном динамическом массиве C++
C++ Удалить из массива все элементы встречающиеся более двух раз
Есть ли какой-нибудь аналог c# using или python with в c++ ? C++
C++ Чтение чисел из двух и более файлов и запись в векторы
Аналог процедуры str в Си++ или как реализовать? C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Hastings
1 / 1 / 0
Регистрация: 29.08.2014
Сообщений: 33
03.09.2014, 23:43  [ТС]     PlaySound или аналог для проигрывания двух и более звуков #9
ап.
Yandex
Объявления
03.09.2014, 23:43     PlaySound или аналог для проигрывания двух и более звуков
Ответ Создать тему
Опции темы

Текущее время: 05:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru