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

Функция PlaySound воспроизводит звук и возвращает управление СРАЗУ ЖЕ (но это неправильно), почему? - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.58
kravam
быдлокодер
 Аватар для kravam
1513 / 873 / 44
Регистрация: 04.06.2008
Сообщений: 5,266
22.01.2012, 13:17     Функция PlaySound воспроизводит звук и возвращает управление СРАЗУ ЖЕ (но это неправильно), почему? #1
Друзья! Вот код:

C++
1
2
3
4
5
6
7
8
#include <windows.h>
#include <stdio.h>
 
int main (){
 PlaySound ("fail.wav", 0, SND_FILENAME || SND_SYNC);
 //getchar ();
 return 0;
}
Прога работает так: Звуковой файл воспроизводится, но управление СРАЗУ ЖЕ возвращается в программу, которая тут же заканчивается, вот и получается что звука-то никакого и нет, почему? Ведь использование SND_SYNC должно гарантировать, чт пока звук не проиграет, управление в программу не вернётся.
MSDN

"The sound is played synchronously, and PlaySound returns after the sound event completes. This is the default behavior."

++++++++++++++++++++++++++++++++++++

А звук проигрывается на самом деле, это видно если расскоментить getchar(); спасибо, кто откликнется.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.01.2012, 13:17     Функция PlaySound воспроизводит звук и возвращает управление СРАЗУ ЖЕ (но это неправильно), почему?
Посмотрите здесь:

Написать функцию, которая принимает строку звуков, а возвращает звук C++
C++ функция возвращает int, возвращаемые значения определены в макросах, как сразу выводить определённые макросы?
C++ Почему функция atan возвращает значения фрагментарно
C++ Почему функция не работает с чарами? Это из-за недостатка памяти?
C++ Задача: Функция получает одномерный массив и возвращает количество чисел с суммой цифр больше 20. Почему не работает?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mr.kto
Сообщений: n/a
22.01.2012, 13:29     Функция PlaySound воспроизводит звук и возвращает управление СРАЗУ ЖЕ (но это неправильно), почему? #2
здесь ты найдешь ответы на свои вопросы))
retmas
Жарю без масла
803 / 685 / 143
Регистрация: 13.01.2012
Сообщений: 1,580
22.01.2012, 13:36     Функция PlaySound воспроизводит звук и возвращает управление СРАЗУ ЖЕ (но это неправильно), почему? #3
PlaySound может урезать воспроизводимый размер. может слишком большой файл?
kravam
быдлокодер
 Аватар для kravam
1513 / 873 / 44
Регистрация: 04.06.2008
Сообщений: 5,266
22.01.2012, 13:38  [ТС]     Функция PlaySound воспроизводит звук и возвращает управление СРАЗУ ЖЕ (но это неправильно), почему? #4
Нет, маленький, он пробный,
1,2Мб
retmas
Жарю без масла
803 / 685 / 143
Регистрация: 13.01.2012
Сообщений: 1,580
22.01.2012, 13:39     Функция PlaySound воспроизводит звук и возвращает управление СРАЗУ ЖЕ (но это неправильно), почему? #5
маленький??? брат, это ОГРОМНЫЙ для PlaySound

Добавлено через 43 секунды
PlaySound используется для файлов до 100К
kravam
быдлокодер
 Аватар для kravam
1513 / 873 / 44
Регистрация: 04.06.2008
Сообщений: 5,266
22.01.2012, 13:50  [ТС]     Функция PlaySound воспроизводит звук и возвращает управление СРАЗУ ЖЕ (но это неправильно), почему? #6
Возникают несколько вопросов:

C++
1
2
3
4
5
6
7
8
#include <windows.h>
#include <stdio.h>
 
int main (){
 PlaySound ("rrr.wav", 0, SND_FILENAME || SND_SYNC);
 getchar ();
 return 0;
}
1) Этот код обалденно воспроизводит *wav размером 10 метров, почему? (это я создавал в стандартной записывалке Windows, была бы возможность создать бОльший файл, создал бы больший)
2) Зачем такая функция нужна, которая не может воспроизвести несчастный 7-секундный файл?!

Впрочем, при ответе на следующий вопрос предыдущие два становятся просто пылью:
3) хотелось бы каких-нибудь документальных подтверждений размеров файла, по ссылке выше я ничё не нашёл, правда, у меня с английским плохо, но всё же.
retmas
Жарю без масла
803 / 685 / 143
Регистрация: 13.01.2012
Сообщений: 1,580
22.01.2012, 13:54     Функция PlaySound воспроизводит звук и возвращает управление СРАЗУ ЖЕ (но это неправильно), почему? #7
http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx
PlaySound functions load an entire waveform-audio file into memory and, in effect, limit the size of the file they can play. Use sndPlaySound and PlaySound to play waveform-audio files that are small — up to about 100K
kravam
24.01.2012, 03:51  [ТС]
  #8

Не по теме:

Может, маленько не в тему, но это исходник превосходно справился и с большими и с маленькими файлами как mp3, так и wav
http://www.mailsend-online.com/blog/...r-windows.html

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.01.2012, 15:08     Функция PlaySound воспроизводит звук и возвращает управление СРАЗУ ЖЕ (но это неправильно), почему?
Еще ссылки по теме:

Почему функция возвращает неправильное значение C++
Почему функция atanh работает неправильно? C++
PlaySound не воспроизводит звук C++

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

Или воспользуйтесь поиском по форуму:
-=ЮрА=-
Заблокирован
Автор FAQ
24.01.2012, 15:08     Функция PlaySound воспроизводит звук и возвращает управление СРАЗУ ЖЕ (но это неправильно), почему? #9
kravam, посмотри сюда SndPlaySound
Yandex
Объявления
24.01.2012, 15:08     Функция PlaySound воспроизводит звук и возвращает управление СРАЗУ ЖЕ (но это неправильно), почему?
Ответ Создать тему
Опции темы

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