Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.11.2007, 08:30   #1
snake-as
Пользователь
 
Аватар для snake-as
 
Регистрация: 10.03.2007
Сообщений: 51
По умолчанию Не могу нормально дорбавить звук

Здравствуйте, помогите мне с такой проблемой: Добавляю звук в программе, а пока он проигрывается, все виснет.. Через таймер пробовал, не помогает.. Буду очень признателен
snake-as вне форума Ответить с цитированием
Старый 29.11.2007, 08:45   #2
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

Через чего проигрываешь звук?
если можно строчку кода
SERG1980 вне форума Ответить с цитированием
Старый 29.11.2007, 09:18   #3
snake-as
Пользователь
 
Аватар для snake-as
 
Регистрация: 10.03.2007
Сообщений: 51
По умолчанию

Код:
procedure PlaySound;
var
  h: THandle;
  p: pointer;
begin
  h := FindResource(hInstance, 'HELLO', 'WAVE');
  h := LoadResource(hInstance, h);
  p := LockResource(h);
  sndPlaySound(p, SND_MEMORY or SND_SYNC);
  UnLockResource(h);
  FreeResource(h);
end;
Звук, как понятно, подгружаю из ресурсов..
snake-as вне форума Ответить с цитированием
Старый 29.11.2007, 10:06   #4
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

Всё ясно!!
вот эту строку sndPlaySound(p, SND_MEMORY or SND_SYNC); замени на
sndPlaySound(p, SND_MEMORY or SND_ASYNC);
и посмотри ещё вот это

Описание значений параметра dwFlags:

Const SND_SYNC = &H0 ' Файл воспроизводится синхронно
' и функция не возвращает управление до окончания воспроизведения

Const SND_ASYNC = &H1 ' Файл воспроизводится асинхронно
' и функция возвращает управление сразу же после
' начала воспроизведения. Для того, чтобы
' прервать воспроизведение, необходимо вызвать
' функцию sndPlaySound с именем файла, равным ""

Const SND_NODEFAULT = &H2 ' Указывает на то, что если файл,
' заданный первым параметром, не найден, то не должен
' воспроизводиться файл по умолчанию

Const SND_MEMORY = &H4 ' Указывает на то, что имя файла
' соответствует WAV-файлу, находящемуся в памяти,
' например, загруженному из ресурса

Const SND_LOOP = &H8 ' Файл воспроизводится от начала до
' конца бесконечное число раз до тех пор, пока не
' вызвана функцию sndPlaySound с именем файла, равным "".
' При таком воспроизведении должен быть указан и флаг
' SND_ASYNC

Const SND_NOSTOP = &H10 ' Функция возвращает FALSE, если
' в момент ее вызова уже воспроизводится какой-нибудь файл
SERG1980 вне форума Ответить с цитированием
Старый 29.11.2007, 10:31   #5
snake-as
Пользователь
 
Аватар для snake-as
 
Регистрация: 10.03.2007
Сообщений: 51
По умолчанию

Спасибо!! Везде искал, нигде не мог найти, все книжки перерыл.. большое спасибо
snake-as вне форума Ответить с цитированием
Старый 29.11.2007, 10:48   #6
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

Я све эти дела находил в яндексе. посмотри ещё вот эти файлы
Вложения
Тип файла: rar sndPlaySound.rar (267.9 Кб, 36 просмотров)
SERG1980 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Звук xakkkkker Мультимедиа в Delphi 4 05.05.2008 08:13
Звук Cabal777 Помощь студентам 3 28.12.2007 23:42
звук и делфи, левый правый звук snusmumric Win Api 2 29.10.2007 11:10
Динамическое создание компонента проходит нормально, но WB.Navigate не выполняется. В чём проблема? AVer Работа с сетью в Delphi 1 02.10.2007 14:48