Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.06.25;
Скачать: CL | DM;

Вниз

Как проиграть MIDI ?   Найти похожие ветки 

 
MIDI   (2005-12-29 01:56) [0]

Нужен простой способ, без коммерческих библиотек типа BASS или MOD.

Проигрывать нужно ИЗ ПОТОКА, а не из файла на диске. Что лучше использовать ?


 
Bogdan1024 ©   (2005-12-29 02:25) [1]

MediaPlayer 8)


 
MIDI   (2005-12-29 02:49) [2]

ИЗ ПОТОКА


 
MIDI   (2005-12-29 05:20) [3]

OpenAL поддерживает MIDI ? Вроде нет, или всё же поддерживает ?
A mp3, a s3m и ему подобные поддерживает ?


 
MIDI   (2005-12-29 05:30) [4]

OpenAL поддерживает MIDI ? Вроде нет, или всё же поддерживает ?
A mp3, a s3m и ему подобные поддерживает ?


 
MIDI   (2005-12-29 05:56) [5]

Мда-а-а-а. OpenAL поддерживает только Wav. Это сильно.

А как же миди то проиграть ?


 
MIDI   (2005-12-29 05:56) [6]

Мда-а-а-а. OpenAL поддерживает только Wav. Это сильно.

А как же миди то проиграть ?


 
Cash ©   (2005-12-29 09:44) [7]

s3m, то есть Storm mix file поддерживает только сама эта прога (Storm)
Перегоняй ее в xm или ogg, тогда толк будет.
И вааще, этот вопрос не сюда, а в медиа конференцию!


 
miek ©   (2005-12-29 10:14) [8]

Если поток - MemoryStream, т.е. можно взять указатель на начало звука, то пользуй PlaySound...


 
JUS ©   (2005-12-29 13:29) [9]

проиграть можно миди в карты с хорошим игроком:)


 
JUS ©   (2005-12-29 13:32) [10]

Гдето у меня была компонента ActiveX, помоему "MP3playlist" или еще как то, если найду щас то выложу, много форматов проигрывает.


 
Don Nikola   (2005-12-29 18:00) [11]

2MIDI:

Проиграть миди из памяти весьма проблемно, по крайней мере в win9x, или проигрывать с диска, или проигрывать через fmod/bass/etc, или писать самому плеер миди-событий.

2Cash:

Я конечно дико извиняюсь, но я почему-то последние лет 10 думал что s3m это от Scream Tracker 3 или сейчас появился новый формат?


 
MIDI   (2005-12-30 06:14) [12]

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 не надо !


 
Midi   (2005-12-30 06:29) [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) [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;


А теперь главное, как досрочно остановить проигрываемый звук ?


 
Don Nikola   (2005-12-30 10:09) [15]

2MIDI:

Что-то я совсем склерозом заболел ;)) Проще всего использовать DirectMusic - точно играет миди из памяти, сам писал такую библиотечку. Играет wav и midi. Есть начиная с DX8 кажеться.


 
Midi   (2005-12-31 01:33) [16]

> Don Nikola   (30.12.05 10:09) [15]
>
> 2MIDI:
>
> Что-то я совсем склерозом заболел ;)) Проще всего использовать DirectMusic


Он у меня не проигрывает Midi. Почему - не знаю. В общем надо без него.

Приведённый выше код запустить так и не удалось. Если кто знает как - дайте пример.


 
Don Nikola   (2005-12-31 06:47) [17]

2Midi:

Могу скинуть мои потуги с DMusic.
Если без DX, то смотри три варианта выше. Стандартно по-моему нельзя или не во всех виндах. Если вдруг захочешь писать свой плеер, то смотри в сторону функций начинающихся с midiOut.

2all: с Новым Годом


 
GuAV ©   (2005-12-31 12:10) [18]


> А теперь главное, как досрочно остановить
> проигрываемый звук ?

Во первых, PlaySound заместо sndPlaySound.
Во вторых, SND_ASYNC заместо SND_SYNC, чтобы получить управление до конца воспроизведения.
Тогда остановка - флаг SND_PURGE.


 
Cash ©   (2006-01-04 13:07) [19]

Вон, на закладке System есть компонент TMediaPlayer.
По сути это медиа плеер винды. Проигрывай через него.
Не кроссплатформенную штуковину же ты делаешь!
А TMediaPlayer умеет все то, что умеет сам Windows Media Player.
(OLE всетаки)


 
palva ©   (2006-01-10 00:31) [20]

Поместить на форму WebBrowser и выполнить оператор
WebBrowser1.Navigate("about:<bgsound loop="0" src="c:\1000001.mid">");
Невидимым браузер сделать не удалось. Можно уменьшить его размеры и заслонить какой-нибудь кнопкой.
Не знаю, что будет затратнее по ресурсам плейер или браузер.


 
имя   (2006-01-13 03:24) [21]

Удалено модератором


 
имя   (2006-01-14 01:56) [22]

Удалено модератором


 
имя   (2006-01-16 04:16) [23]

Удалено модератором


 
имя   (2006-01-17 07:32) [24]

Удалено модератором


 
Кто то против?   (2006-01-18 02:31) [25]

PlaySound и sndPlaySound не проигрывают midi.


 
имя   (2006-01-24 03:29) [26]

Удалено модератором



Страницы: 1 вся ветка

Текущий архив: 2006.06.25;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.03 c
15-1149167898
Der Nechk@ssoff
2006-06-01 17:18
2006.06.25
Button


15-1148902544
Kolan
2006-05-29 15:35
2006.06.25
Где найти книги про протоколы канального уровня


2-1149674994
ksenia
2006-06-07 14:09
2006.06.25
реестр


3-1146043801
Youta
2006-04-26 13:30
2006.06.25
Как из Делфи написать запрос, в котором необходимо использовать а


3-1145967623
Express
2006-04-25 16:20
2006.06.25
TDBGrid - номер текущей записи и всего записей в таблице