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

Вниз

MediaPlayer   Найти похожие ветки 

 
Маришка ©   (2003-04-23 09:55) [0]

Привет. Подскажите, пожалуйста. Я использую MediaPlayer. Проговаривается определенный текст.
Если я не ставлю mp1.Wait:=true, то говориться самая последняя фраза. А если ставлю, то пока программа разговаривает нельзя нажать ни на какую кнопку программы.
Не знаете как сделать так, чтобы говорились все фразы и можно было нажать на любую кнопку?

MP1.Open;
try
mp1.Wait:=true;
mp1.Play;
finally
mp1.Close;
end;


 
Дмитрий К.К. ©   (2003-04-23 11:29) [1]


> Маришка © (23.04.03 09:55)
> А если ставлю, то пока программа разговаривает нельзя
> нажать ни на какую кнопку программы.


Почему нельзя? Кто-то стоит рядом и связывает руки? ;)


 
Дмитрий К.К. ©   (2003-04-23 12:18) [2]

Ни на какую кнопку программы или ни на какую кнопку медиаплейера?


 
Маришка ©   (2003-04-23 14:13) [3]

>Дмитрий
Ни на какую кнопку программы


 
Дмитрий К.К. ©   (2003-04-23 14:42) [4]

Application.ProcessMessages не помогает?


 
Маришка ©   (2003-04-23 15:20) [5]

>Дмитрий
А что это такое?


 
Evgeny V ©   (2003-04-24 06:48) [6]

Проблема в том, что когда ты ставишь mp1.Wait:=true; то прога ждет окончания проигрывания файла(mp1.Play;), поэтому все висит, если поставить mp1.Wait:=false;, то mp1.Play вывалится сразу, не ожидая завершения проигрывания файла и ты в своем коде , который привела успешно закроешь аудио устройство, не проиграв все. Поэтому завпустив в этом случае mp1.Play, не надо сразу закрывать устройство, контролировать сколько проиграно можно по свойству Position. Пример на си правда но понятен:
MediaPlayer1->FileName = "D:\WINAPPS\SOUNDS\CARTOON.WAV";
MediaPlayer1->Open();
MediaPlayer1->EndPos = MediaPlayer1->TrackLength;
MediaPlayer1->FileName = "D:\WINAPPS\SOUNDS\CARTOON.WAV";
MediaPlayer1->Open();
MediaPlayer1->Wait=false;
MediaPlayer1->TimeFormat = tfSamples;
MediaPlayer1->Open();
MediaPlayer1->MediaPlayer1->Play();
while(MediaPlayer1->Position < MediaPlayer1->EndPos)
Apllcation->ProcessMessages();
MediaPlayer1->Close();

Лучше конечно проверку делать по таймеру, так мне кажется, настроить его например на 100 или 500, и тогда не нужен Apllcation->ProcessMessages(); и цикл, проверила, не закончило играть, запустила таймер снова, закончило, остановила таймер, закрыла аудио устройство.




 
Плохой человек   (2003-04-24 22:43) [7]

>Application.ProcessMessages не помогает?

TMediaPlayer может играть звук и в заднем фоне, ничего лепить не надо.



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

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

Наверх




Память: 0.48 MB
Время: 0.014 c
1-68307
Eugene_P
2003-08-06 15:22
2003.08.21
DDE -> VB -> MS WORD ?


3-68165
s_ser
2003-07-28 19:50
2003.08.21
Забрать данные из BLOB поля


3-68151
paxer
2003-07-25 10:48
2003.08.21
Длинный текст


3-68224
М. Дмитрий
2003-07-27 20:01
2003.08.21
Имена таблиц в MSAccess?


3-68166
SPIRIT
2003-07-29 07:12
2003.08.21
Печать на принтере