Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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.048 c
11-1150407283
parovoZZ
2006-06-16 01:34
2007.03.11
Demo2Forms - не понял юмора


1-1169069194
Deeman
2007-01-18 00:26
2007.03.11
Полупрозрачные края


2-1171787064
Lamer666
2007-02-18 11:24
2007.03.11
DbGridEh ImageList


4-1161778277
Den-63
2006-10-25 16:11
2007.03.11
Как установить время ВКЛЮЧЕНИЯ компа в БИОСе?


6-1159950477
POINT
2006-10-04 12:27
2007.03.11
webbrowser





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский