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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.10.2008, 22:21   #1
yulia
Форумчанин
 
Аватар для yulia
 
Регистрация: 24.03.2007
Сообщений: 314
По умолчанию звук в файл *.midi

У меня при нажатии на кнопку проигрывается звук.. Как этот звук записать в файл?
yulia вне форума Ответить с цитированием
Старый 12.10.2008, 22:24   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

А у меня в квартире газ...
Что за кнопка?
mihali4 вне форума Ответить с цитированием
Старый 12.10.2008, 22:26   #3
yulia
Форумчанин
 
Аватар для yulia
 
Регистрация: 24.03.2007
Сообщений: 314
По умолчанию

ну на самом деле не кнопка, а просто Shape, который реагирует Click.
yulia вне форума Ответить с цитированием
Старый 12.10.2008, 23:11   #4
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию


звук откуда проигрывается?
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 14.10.2008, 01:53   #5
yulia
Форумчанин
 
Аватар для yulia
 
Регистрация: 24.03.2007
Сообщений: 314
По умолчанию

))))
procedure TForm1.ShB4MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
midiOutShortMsg (hmidi, $5390+((vel) * $10000));
end;

procedure TForm1.ShB4MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
midiOutShortMsg(hmidi,$5380)
end;

вот так проигрывается...

vel - это переменная для регулирования громкости
yulia вне форума Ответить с цитированием
Старый 15.10.2008, 18:56   #6
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Ну тут есть несколько путей.
Первый - посмотреть в MMSystem, может там есть реализация сохранения в файл.
Второй - воспользоваться сторонним компонентом, библиотекой.
Третий - вручную, самый трудный, изучить структуру MIDI формата и побайтово записывать файл, по сути свой движок сохранения в миди написать.

Ну и четвертый - прокрутить эту страницу до конца и посмотреть в похожих темах )
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 19.10.2008, 14:30   #7
yulia
Форумчанин
 
Аватар для yulia
 
Регистрация: 24.03.2007
Сообщений: 314
По умолчанию

пытаюсь я сделать запись через функции mmsystem... не могли бы вы мне помочь с некоторыми вопросами, пожалуйста.

1. idfile:=mmioOpen('myfile.mid', 0, MMIO_CREATE); - вот так работает, файл создает, но как указать несколько флагов?
idfile:=mmioOpen('myfile.mid', 0, MMIO_CREATE|MMIO_READWRITE); - вот так не работает, пишет, что неразрешенный символ "|".

2. Как я понимаю запись в файл осуществляется с помощью функции
mmioWrite(HMMIO hmmio, HPSTR hpBuff, LONG dwBytes);
HPSTR hpBuff - указатель на буфер с данными. Откуда этот буфер брать?

Заранее спасибо
yulia вне форума Ответить с цитированием
Старый 19.10.2008, 14:30   #8
yulia
Форумчанин
 
Аватар для yulia
 
Регистрация: 24.03.2007
Сообщений: 314
По умолчанию

пытаюсь я сделать запись через функции mmsystem... не могли бы вы мне помочь с некоторыми вопросами, пожалуйста.

1. idfile:=mmioOpen('myfile.mid', 0, MMIO_CREATE); - вот так работает, файл создает, но как указать несколько флагов?
idfile:=mmioOpen('myfile.mid', 0, MMIO_CREATE|MMIO_READWRITE); - вот так не работает, пишет, что неразрешенный символ "|".

2. Как я понимаю запись в файл осуществляется с помощью функции
mmioWrite(HMMIO hmmio, HPSTR hpBuff, LONG dwBytes);
HPSTR hpBuff - указатель на буфер с данными. Откуда этот буфер брать?

Заранее спасибо
yulia вне форума Ответить с цитированием
Старый 22.12.2010, 20:04   #9
romlo
Пользователь
 
Аватар для romlo
 
Регистрация: 21.06.2010
Сообщений: 49
По умолчанию

1. Символ "|" - это сишный "or", пиши "or" вместо него.
romlo вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Структура midi файлов lacost Мультимедиа в Delphi 6 21.08.2011 21:49
Циклическое проигрывание midi-файла без разрывов в звучании LordYuri Мультимедиа в Delphi 2 23.04.2008 18:09
MIDI Shurik Hacker Компоненты Delphi 1 21.01.2008 13:54
звук и делфи, левый правый звук snusmumric Win Api 2 29.10.2007 11:10
Воспроизведение Midi-нот desperado Общие вопросы Delphi 2 26.06.2007 13:22