Главная страница
    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.009 c
14-68467
clickmaker
2003-08-06 13:15
2003.08.21
Дешевые гостиницы в Москве


1-68362
Evgeny
2003-08-07 10:04
2003.08.21
Stream


14-68501
Новенький
2003-08-02 18:33
2003.08.21
Откл. Вкл. интернет...


14-68483
LOX
2003-07-21 08:29
2003.08.21
Кулера


1-68282
Evg12
2003-07-30 16:30
2003.08.21
Помогите решить проблему с ProgressBar





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