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

Вниз

Проиграть звук   Найти похожие ветки 

 
!_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 вся ветка

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

Наверх




Память: 0.49 MB
Время: 0.072 c
3-1166062851
NigthSkif
2006-12-14 05:20
2007.03.11
Исключения


1-1168968633
Garacio
2007-01-16 20:30
2007.03.11
найти пустые ячейки в третьем столбце ListView по всем строкам


2-1172061997
Аликъ
2007-02-21 15:46
2007.03.11
Listview нумерация строк


1-1169191653
mess
2007-01-19 10:27
2007.03.11
WMQueryEndSession


3-1166266423
The X
2006-12-16 13:53
2007.03.11
Правильное определение Memo при CREATE TABLE