Форум: "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