Необходимо сделать тест, показывает десять картинок и в это время играет один звук и нужно выбрать нужную картинку ( например картинка машины и рев двигателя) . Звуков соответсвенно тоже 10, для каждой картинки, что бы все картинку угадать. Загрузил картинки в массив и на форму. Звуки так, же.
pic:array[1..10] of TImage;
snd:array[1..10] of integer; //Беру по порядку пути к файлам mp3 и проигрываю.
Вот как мне сравнивать картинку и звук, что бы сделать тест. Необходимо получаеться вводить дополнительные индефикаторы, но я не разберусь (
Другие языки программирования и технологии
Delphi Тест. Выбор картинки по играющему звуку.
пример для работы с mp3
http://programmersclub.ru/files/mp3_player.rar
Функция PlaySound
Эта функция может воспроизводить любые волновые звуки, а не только звуки событий Windows. Функция API Windows, параметры которой описаны в модуле mmsystem. Поэтому для использования этой функции в Ваших программах, необходимо включить в раздел uses модуль mmsystem. Функция PlaySound определена так:
function PlaySound(pszSound:PChar; hmod:HINST; fdwSound:Cardinal):boolean;
Параметр pszSound является нуль терминированной строкой (последний символ строки имеет нулевой код) , он определяет воспроизводимый звук. Параметр hmod используется в случае, когда звук берется из ресурса, поскольку мы этого делать не будем, то можно этот параметр задавать равным 0 или nil.
Последний параметр fdwSound является множеством, которое определяет как будет воспроизводиться звук (режим воспроизведения) . Приведу наиболее важные значения этого множества для воспроизведения произвольных волновых флагов.
* SND_ASYNC - Звук воспроизводится асинхронно и функция возвращается сразу же после начала воспроизведения. Чтобы прекратить воспроизведение нужно вызвать функцию PlaySound с параметром pszSound, равным 0.
* SND_LOOP - воспроизведение звука постоянно повторяется, одновременно надо установить флаг SND_ASYNC.
* SND_NOSTOP - Если заданный звук не может быть воспроизведен из-за занятости ресурсов, то функция немедленно вернет false (и звук не будет воспроизведен) . Если же данный флаг не указан, то функция попытается остановить воспроизведение другого звука, чтобы освободить ресурсы.
* SND_PURGE - Останавливает воспроизведение любых звуков, вызванных в данной задаче.
* SND_SYNC - Синхронное воспроизведение звука события. Функция PlaySound возвращается только после окончания воспроизведения.
Важно: флаги можно комбинировать операцией or.
Указанный параметром pszSound звук, должен подходить для установленного драйвера устройства воспроизведения волновых файлов, а также должен помещаться в доступную память.
Прервать воспроизведение звука можно выполнив оператор
PlaySound(0, 0, SND_PURGE);
или путем задания нового звука.
Например, чтобы многократно и асинхронно проиграть какой-нибудь звук, выбранный с помощью OpenDialog, можно написать такой код:
procedure TForm1.Button1Click(Sender: TObject);
var PCh: PChar;
begin
if OpenDialog1.Execute then
begin
StrPCopy(PCh,OpenDialog1.FileName);
PlaySound(Pch,0,SND_ASYNC or SND_LOOP);
end;
end;
http://programmersclub.ru/files/mp3_player.rar
Функция PlaySound
Эта функция может воспроизводить любые волновые звуки, а не только звуки событий Windows. Функция API Windows, параметры которой описаны в модуле mmsystem. Поэтому для использования этой функции в Ваших программах, необходимо включить в раздел uses модуль mmsystem. Функция PlaySound определена так:
function PlaySound(pszSound:PChar; hmod:HINST; fdwSound:Cardinal):boolean;
Параметр pszSound является нуль терминированной строкой (последний символ строки имеет нулевой код) , он определяет воспроизводимый звук. Параметр hmod используется в случае, когда звук берется из ресурса, поскольку мы этого делать не будем, то можно этот параметр задавать равным 0 или nil.
Последний параметр fdwSound является множеством, которое определяет как будет воспроизводиться звук (режим воспроизведения) . Приведу наиболее важные значения этого множества для воспроизведения произвольных волновых флагов.
* SND_ASYNC - Звук воспроизводится асинхронно и функция возвращается сразу же после начала воспроизведения. Чтобы прекратить воспроизведение нужно вызвать функцию PlaySound с параметром pszSound, равным 0.
* SND_LOOP - воспроизведение звука постоянно повторяется, одновременно надо установить флаг SND_ASYNC.
* SND_NOSTOP - Если заданный звук не может быть воспроизведен из-за занятости ресурсов, то функция немедленно вернет false (и звук не будет воспроизведен) . Если же данный флаг не указан, то функция попытается остановить воспроизведение другого звука, чтобы освободить ресурсы.
* SND_PURGE - Останавливает воспроизведение любых звуков, вызванных в данной задаче.
* SND_SYNC - Синхронное воспроизведение звука события. Функция PlaySound возвращается только после окончания воспроизведения.
Важно: флаги можно комбинировать операцией or.
Указанный параметром pszSound звук, должен подходить для установленного драйвера устройства воспроизведения волновых файлов, а также должен помещаться в доступную память.
Прервать воспроизведение звука можно выполнив оператор
PlaySound(0, 0, SND_PURGE);
или путем задания нового звука.
Например, чтобы многократно и асинхронно проиграть какой-нибудь звук, выбранный с помощью OpenDialog, можно написать такой код:
procedure TForm1.Button1Click(Sender: TObject);
var PCh: PChar;
begin
if OpenDialog1.Execute then
begin
StrPCopy(PCh,OpenDialog1.FileName);
PlaySound(Pch,0,SND_ASYNC or SND_LOOP);
end;
end;
Андрей Выходец
Спасибо, Алексей вы как всегда непривзойденны!
Ты почаще облаивай местных отвечающих, тебе больше и чаще отвечать будут.
Андрей Выходец
хм, я и не догадывался, что сдесь кружок неадекватных по интересам. Все такие гордые. ну-ну
Case Pic of
1:blabla;
2: blabla;
3:blabla;
4:blabla;
5:blabla;
6:blabla;
7:blabla;
8:blabla;
9:blabla;
end;
1:blabla;
2: blabla;
3:blabla;
4:blabla;
5:blabla;
6:blabla;
7:blabla;
8:blabla;
9:blabla;
end;
Похожие вопросы
- пишу на с++ программу-тест, выбор правильно ответа цифрой, но если я нажимаю символ, то программа сразу вылетает
- Согласны с этим - Глубинные причины ненависти к Delphi/Pascal ?
- Delphi:Прочитал, что если при динамическом создании компонента если указать Name объекта, то в последующем можно ->
- Создаю тест в DELPHI 7. Программа не считает правильные ответы.
- Как в Delphi сделать справку?
- Помогите найти ошибку Delphi легкая программка
- Delphi ПОМОГИТЕ ПОЖАЛУЙСТА!
- Задача на Delphi. Аааа решите пожалуйста :'(
- Про Delphi
- Delphi. Обьясните подробно, что, как, и для чего нужен\используется "while" ?