![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как проиграть MIDI ?
MIDI © (2005-12-29 01:56:00)Нужен простой способ, без коммерческих библиотек типа BASS или MOD.
Проигрывать нужно ИЗ ПОТОКА, а не из файла на диске. Что лучше использовать ?
(2006-01-24 03:29:00) [1]Удалено модератором
Кто то против? (2006-01-18 02:31:00) [2]PlaySound и sndPlaySound не проигрывают midi.
(2006-01-17 07:32:00) [3]Удалено модератором
(2006-01-16 04:16:00) [4]Удалено модератором
(2006-01-14 01:56:00) [5]Удалено модератором
(2006-01-13 03:24:00) [6]Удалено модератором
palva (2006-01-10 00:31:00) [7]Поместить на форму WebBrowser и выполнить оператор
WebBrowser1.Navigate('about:<bgsound loop="0" src="c:\1000001.mid">');
Невидимым браузер сделать не удалось. Можно уменьшить его размеры и заслонить какой-нибудь кнопкой.
Не знаю, что будет затратнее по ресурсам плейер или браузер.
Cash (2006-01-04 13:07:00) [8]Вон, на закладке System есть компонент TMediaPlayer.
По сути это медиа плеер винды. Проигрывай через него.
Не кроссплатформенную штуковину же ты делаешь!
А TMediaPlayer умеет все то, что умеет сам Windows Media Player.
(OLE всетаки)
GuAV (2005-12-31 12:10:00) [9]
> А теперь главное, как досрочно остановить
> проигрываемый звук ?
Во первых, PlaySound заместо sndPlaySound.
Во вторых, SND_ASYNC заместо SND_SYNC, чтобы получить управление до конца воспроизведения.
Тогда остановка - флаг SND_PURGE.
Don Nikola (2005-12-31 06:47:00) [10]2Midi:
Могу скинуть мои потуги с DMusic.
Если без DX, то смотри три варианта выше. Стандартно по-моему нельзя или не во всех виндах. Если вдруг захочешь писать свой плеер, то смотри в сторону функций начинающихся с midiOut.
2all: с Новым Годом
Midi (2005-12-31 01:33:00) [11]> Don Nikola (30.12.05 10:09) [15]
>
> 2MIDI:
>
> Что-то я совсем склерозом заболел ;)) Проще всего использовать DirectMusic
Он у меня не проигрывает Midi. Почему - не знаю. В общем надо без него.
Приведённый выше код запустить так и не удалось. Если кто знает как - дайте пример.
Don Nikola (2005-12-30 10:09:00) [12]2MIDI:
Что-то я совсем склерозом заболел ;)) Проще всего использовать DirectMusic - точно играет миди из памяти, сам писал такую библиотечку. Играет wav и midi. Есть начиная с DX8 кажеться.
Midi (2005-12-30 06:29:00) [13]Нашёл пример ( надеюсь правильный, так как ещё не пробовал ) :
procedure TForm1.PlaySndFromMemoryClick(Sender: TObject);
var
f: file;
p: pointer;
fs: integer;
begin
AssignFile(f, 'hello.mid');
Reset(f, 1);
fs := FileSize(f);
GetMem(p, fs);
BlockRead(f, p^, fs);
CloseFile(f);
sndPlaySound(p, SND_MEMORY or SND_SYNC);
FreeMem(p, fs);
end;
А теперь главное, как досрочно остановить проигрываемый звук ?
Midi (2005-12-30 06:29:00) [14]Нашёл пример ( надеюсь правильный, так как ещё не пробовал ) :
procedure TForm1.PlaySndFromMemoryClick(Sender: TObject);
var
f: file;
p: pointer;
fs: integer;
begin
AssignFile(f, 'hello.mid');
Reset(f, 1);
fs := FileSize(f);
GetMem(p, fs);
BlockRead(f, p^, fs);
CloseFile(f);
sndPlaySound(p, SND_MEMORY or SND_SYNC);
FreeMem(p, fs);
end;
А теперь главное, как досрочно остановить проигрываемый звук ?
MIDI (2005-12-30 06:14:00) [15]miek © (29.12.05 10:14) [8]
Если поток - MemoryStream, т.е. можно взять указатель на начало звука, то пользуй PlaySound...
Да MemoryStream. А как ? Можно пример с PlaySound ?
> Don Nikola (29.12.05 18:00) [11]
> или проигрывать через fmod/bass/etc,
Они платные.
> JUS © (29.12.05 13:32) [10]
> Гдето у меня была компонента ActiveX
ActiveX не надо !
Don Nikola (2005-12-29 18:00:00) [16]2MIDI:
Проиграть миди из памяти весьма проблемно, по крайней мере в win9x, или проигрывать с диска, или проигрывать через fmod/bass/etc, или писать самому плеер миди-событий.
2Cash:
Я конечно дико извиняюсь, но я почему-то последние лет 10 думал что s3m это от Scream Tracker 3 или сейчас появился новый формат?
JUS (2005-12-29 13:32:00) [17]Гдето у меня была компонента ActiveX, помоему "MP3playlist" или еще как то, если найду щас то выложу, много форматов проигрывает.
JUS (2005-12-29 13:29:00) [18]проиграть можно миди в карты с хорошим игроком:)
miek (2005-12-29 10:14:00) [19]Если поток - MemoryStream, т.е. можно взять указатель на начало звука, то пользуй PlaySound...
Cash (2005-12-29 09:44:00) [20]s3m, то есть Storm mix file поддерживает только сама эта прога (Storm)
Перегоняй ее в xm или ogg, тогда толк будет.
И вааще, этот вопрос не сюда, а в медиа конференцию!