Форум: "Media";
Текущий архив: 2007.03.11;
Скачать: [xml.tar.bz2];
ВнизПроиграть звук Найти похожие ветки
← →
!_SM_! (2006-06-16 15:21) [0]Здраствуйте! Подскажите как проиграть звук(и) в программе на какое либо событие.
Делал разными способами но получалось либо звук проигрывает затем играет следующий либо предыдущий остонавливается играет следующий, а хотелось бы чтобы звуки накладывались друг на друга делал примерно так:
с использованием TMediaPlayer MP1, MP2, MP3 - TMediaPlayer
procedure PlaySnd(const S: String);
var MP: TMediaPlayer
begin
if MP1.Mode=mpPlaying then
if MP2.Mode=mpPlaying then
if MP3.Mode=mpPlaying then Exit
else MP:=MP3
else MP:=MP2
else MP:=MP1;
try MP.FileName:=S; MP.Open; MP.Play;
except MP.Close; end;
end;
или
procedure PlaySnd(const S: String);
var MP: TMediaPlayer
begin
PlaySound(PChar(S),0,<пробовал разные параметры>);
SND_ASYNC - вроде нормально но прерывает предыдущий звук
end;
далее либо на нажатие кнопок, либо в цикле
PlaySnd(<FileName.ext>);
FileName.ext - какой нибудь вавфайл короткий (звук типа стандартного в винде)
Что можете посоветовать? СПАСИБО!
← →
h8394E (2006-06-16 23:55) [1]Используй лучше PlaySound(); в модуле MMSystem;
← →
Rial © (2006-06-17 00:33) [2]
> h8394E (16.06.06 23:55) [1]
>
> Используй лучше PlaySound(); в модуле MMSystem;
>
А тут и так о нем ручь ... или я недопонял чего ?
Изучи OpenAL (или Bass, или DirectSound), там можно без тормозов до
10-12 звуков одновременно проигрывать.
OpenAL - очень маленькая и простенькая мультеплатформенная библиотечка ...
← →
!_SM_! (2006-06-17 01:21) [3]Спасибо.
Что такое OpenAL?
← →
!_SM_! (2006-06-17 01:30) [4]Да кстати MediaPlayer может проиграть файл открытый в другом
MediaPlayerе на одной и тойже форме т.е в одном приложении
procedure PlaySnd(const S: String);
var MP: TMediaPlayer
begin
if MP1.Mode=mpPlaying then
if MP2.Mode=mpPlaying then
if MP3.Mode=mpPlaying then Exit
else MP:=MP3
else MP:=MP2
else MP:=MP1;
try MP.FileName:=S; MP.Open; MP.Play;
except MP.Close; end;
end;
В этом коде выбирается незанетый проигрыватель но...
если параметр S уже ктото играет из этих трех проигрывателей
то вылетает ошибка что-то с псевдонимом каким то связана
Вот если на форме один проигрыватель у него FileName
установлен так вот если откомпилить и запустить две
копии проги то звучать будут оба т.е играть один и тотже файл,
а в одном приложении два проигрывателя не могут проиграть один и тоже файл....
← →
Rial © (2006-06-17 01:46) [5]Знаки препинания, уважаемый, придумали не просто так...
Вам сюда:
http://www.gamedev.ru/articles/?sect=10
Если надо пример простой по OpenAL, могу выложить.
← →
!_SM_! (2006-06-17 13:17) [6]
> Rial © (17.06.06 01:46) [5]
Спасибо! Если можно пример по теме.
← →
Rial © (2006-06-17 15:59) [7]Пример:
http://www.Rial578.narod.ru/protected/RialPlayer.rar
← →
!_SM_! (2006-06-17 16:40) [8]
> Rial © (17.06.06 15:59) [7]
Спасибо. Будем изучать...
← →
Rial © (2006-06-17 17:06) [9]Только там глюк, см
http://delphimaster.net/view/9-1150539273/
← →
diman_1978 © (2006-06-27 14:16) [10]есть неплохая библиотека Bass для воспроизведения звуков
← →
han_malign © (2006-06-27 17:07) [11]PlaySound(PChar(S),0,SND_FILENAME or SND_ASYNC or SND_NOSTOP);
?
← →
Jeer © (2006-06-27 17:33) [12]han_malign © (27.06.06 17:07) [11]
> PlaySound(PChar(S),0,SND_FILENAME or SND_ASYNC or SND_NOSTOP);
Это слишком просто:))
← →
!_SM_! (2006-07-09 16:14) [13]
> diman_1978 ©
Как при помощи библиотеки bass проиграть звук из ресураса приложения или dll
Страницы: 1 вся ветка
Форум: "Media";
Текущий архив: 2007.03.11;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.036 c