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

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

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

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

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

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

Удаление двух или более подряд стоящих нулей в одномерном динамическом массиве - C++
Привет всем :) Помогите исправить программу. Нужно удалить из одномерного динамического массива два или более подряд стоящих нулей. ...

Программа для записи звуков. - C++
Приветствую всех. Хотелось бы узнать как можно реализовать запись звука с микрофона к примеру в формат wav. Подскажите где можно про это...

Проигрывание 2 или более звуков одновременно (Потоки) - C#
Не забываем и помним что музыка проигрывается из ресурсов. Имеется 2 потока. static void musicplaySTART() { SoundPlayer sp =...

.NET 4.x Использование двух или более каскадов Хаара - C#
Доброго времени суток! Пишу детектор знаков ограничения скорости(в компьютерном зрении новичек), реализация фильтра и поиска координат...

Есть ли в Qt аналог QPair, только не для двух, а для трёх элементов? - C++ Qt
:) ? :)

Одновременное воспроизведение двух звуков - C#
Сделал прогу в которой по нажатию на кнопку звучит музыка. Ну так для создания атмосферы. Потом дописал прогу: по нажатию на левую кнопку...

8
Toshkarik
1141 / 858 / 51
Регистрация: 03.08.2011
Сообщений: 2,386
Завершенные тесты: 1
29.08.2014, 00:56 #2
С помощью PlaySound можно проиграть только один файл. Попробуйте почитать о DirectSound.
0
castaway
Эксперт С++
4884 / 3019 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 10
Завершенные тесты: 1
29.08.2014, 07:51 #3
Можно. Используй флаг SND_ASYNC.
0
AlexVRud
444 / 155 / 40
Регистрация: 04.07.2014
Сообщений: 444
29.08.2014, 10:11 #4
Цитата Сообщение от Hastings Посмотреть сообщение
Добрый день, изучаю C++, сейчас мне нужно, чтобы проигрывался звук
Рано или поздно, надо будет учится искать и использовать и сторонние библиотеки.
Если считаешь, что готов, то можешь ещё посмотреть и в сторону SDL_mixer
0
Hastings
1 / 1 / 0
Регистрация: 29.08.2014
Сообщений: 34
29.08.2014, 14:06  [ТС] #5
Цитата Сообщение от castaway Посмотреть сообщение
Можно. Используй флаг SND_ASYNC.
Как я понял, этот флаг лишь позволяет заниматься другими делами, пока проигрывается звук, если я после поставлю ещё 1 ф-цию PlaySound, то она прекратит предыдущий звук и начнёт новый. Мне нужно, чтобы первый продолжал играть.
Цитата Сообщение от Toshkarik Посмотреть сообщение
Попробуйте почитать о DirectSound.
Это из DirectX? Нужно скачать и разбираться с этим http://www.microsoft.com/en-ca/downl...s.aspx?id=6812
Или какие-то другие библиотеки?
0
castaway
Эксперт С++
4884 / 3019 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 10
Завершенные тесты: 1
29.08.2014, 15:17 #6
Да. Действительно. Пардоньте. Тогда waveOut можно использовать из winmm.
0
Toshkarik
1141 / 858 / 51
Регистрация: 03.08.2011
Сообщений: 2,386
Завершенные тесты: 1
29.08.2014, 16:56 #7
Hastings, да, с этим. Ну или можете использовать библиотеку BASS.
0
Hastings
1 / 1 / 0
Регистрация: 29.08.2014
Сообщений: 34
30.08.2014, 12:58  [ТС] #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 минут
ап.
0
Hastings
1 / 1 / 0
Регистрация: 29.08.2014
Сообщений: 34
03.09.2014, 23:43  [ТС] #9
ап.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.09.2014, 23:43
Привет! Вот еще темы с ответами:

Проигрывание двух звуков по порядку - Программирование Android
В приложении в MediaPlayer загружаю два звука, но они проигрываются одновременно. Как сделать так, чтобы второй звук проигрывался только...

Использование одновременно двух звуков - C#
Не могли бы вы попонятнее объяснить как можно использовать одновременно две звуковые дорожки? Это я к тому, что если попытаться поверх...

Поиск пикселей определенного цвета на двух или более изображениях одного размера и отрисовка их на первом - C#
Появилась необходимость написать простенькую программу целькоторой будет: Поиск пикселей определенного цвета на 2х или более изображениях...

Параллельное воспроизведение двух разных звуков - Visual Basic .NET
Помогите пожалуйста. Есть форма, на ней кнопки(на кнопках звуковые эффекты нажатия), при загрузке формы запускается музыка. Когда я...


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

Или воспользуйтесь поиском по форуму:
9
Yandex
Объявления
03.09.2014, 23:43
Ответ Создать тему
Опции темы

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