Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2003.08.21;
Скачать: [xml.tar.bz2];

Вниз

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

Форум: "Media";
Текущий архив: 2003.08.21;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.007 c
3-68180
Rustik
2003-07-28 09:39
2003.08.21
Подскажите с вложенным запросом SQL для Paradox


14-68547
CD
2003-08-06 14:53
2003.08.21
Про вопрос о неприкасаемости


3-68190
KoluChi
2003-07-28 13:14
2003.08.21
Как с помощью SQL DDL определить для поля значение по умолчанию


14-68476
Карлсон
2003-08-06 00:39
2003.08.21
Перекодировка DVD


14-68481
Карелин Артем
2003-08-06 16:15
2003.08.21
Где найти русифицированные модули к дельфи?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский