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

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

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

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

29.08.2014, 00:37. Просмотров 552. Ответов 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++
Приветствую всех. Хотелось бы узнать как можно реализовать запись звука с микрофона к примеру в формат wav. Подскажите где можно про это...

как можно более просто написать эту программку(более понятным языком для начинающего) - C++
7. Установить, четным или нечетным является число цифр в записи данного натурального числа. Если число цифр нечетно, вывести среднюю цифру....

Вывод двух и более слов - C++
Когда я вношу имя состоящие из двух слов, то выводиться только последнее слово: struct Product { char product_name; float...

Есть ли в С аналог функции explode(или split)? - C++
Есть ли в С аналог или сама функция explode или split, которая позволяет разбить строку на подстроки, беря за разделитель указанный символ...

Аналог процедуры str в Си++ или как реализовать? - C++
Доброго времени суток. Есть строка кода на Паскале: Str(X:Lens,Stroka); Нужно записать аналогичную строку, только в...

Есть ли какой-нибудь аналог c# using или python with в c++ ? - C++
В C# (using pattern) и python есть специальные конструкции которые позволяют не следить за закрытием файла после окончания блока. using...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Toshkarik
1140 / 857 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
29.08.2014, 00:56     PlaySound или аналог для проигрывания двух и более звуков #2
С помощью PlaySound можно проиграть только один файл. Попробуйте почитать о DirectSound.
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
29.08.2014, 07:51     PlaySound или аналог для проигрывания двух и более звуков #3
Можно. Используй флаг SND_ASYNC.
AlexVRud
442 / 152 / 38
Регистрация: 04.07.2014
Сообщений: 430
29.08.2014, 10:11     PlaySound или аналог для проигрывания двух и более звуков #4
Цитата Сообщение от Hastings Посмотреть сообщение
Добрый день, изучаю C++, сейчас мне нужно, чтобы проигрывался звук
Рано или поздно, надо будет учится искать и использовать и сторонние библиотеки.
Если считаешь, что готов, то можешь ещё посмотреть и в сторону SDL_mixer
Hastings
1 / 1 / 0
Регистрация: 29.08.2014
Сообщений: 34
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
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
29.08.2014, 15:17     PlaySound или аналог для проигрывания двух и более звуков #6
Да. Действительно. Пардоньте. Тогда waveOut можно использовать из winmm.
Toshkarik
1140 / 857 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
29.08.2014, 16:56     PlaySound или аналог для проигрывания двух и более звуков #7
Hastings, да, с этим. Ну или можете использовать библиотеку BASS.
Hastings
1 / 1 / 0
Регистрация: 29.08.2014
Сообщений: 34
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++
Тема: Записи. Работа с текстовыми файлами. Дан файл f, содержащий сведения о багаже нескольких пассажиров. Багаж пассажира...

Входит ли буква в заданною строку не более двух раз - C++
Написать и протестировать функцию, которая определяет, входит ли буква в заданною строку не более двух раз.

Чтение чисел из двух и более файлов и запись в векторы - C++
В общем моя задача такова: Есть 2 и более файла, каждый из которых наполнен столбцом чисел. Мне нужно прочесть числа из каждого файла и...

Обнулить в матрице строки, в которых более двух простых чисел - C++
11.В матрице целых чисел обнулить строки, в которых более двух простых чисел.

Найти числа, встречающиеся более двух раз (исправить вывод) - C++
Здравствуйте форумчане) Делаю лабу по программирвоанию, всё написал и даже работает но вывод результата очень корявый(неправильный),...


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

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

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