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

Вниз

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

 
Eeuwige Rouw   (2011-10-05 04:58) [0]

Доброго времени суток! Мастера, тут такое дело...

Моя дама полный "чайник" в компе, даже ярлык на рабочем столе создать не может...
Написал ей аудиоплеер, и столкнулся с проблемой, а именно: одни мп3 файлы он вопроизводит а другие нет...
из-за ошибки начинают появляться бесконечно сообщения "No MCI Device open"...

проблема в том, что у меня не получается перехватить это сообщение,
тоесть, в блок try ... except помещено сообщение, что файл не поддерживается, а также функция выхода из процедуры загрузки Exit,
сообщение показывается, но те сообщения все равно вылазят, процесс убивается только через диспетчер задач...
подскажите как перехватить это, чтобы не вылезали эти сообщения, а просто, сразу выход из процедуры?

( Юмор, колкости, принимаются, но помощь очень нужна! )

Всех благодарю за ответы!

Вот это перехватить надо (подробнее): http://content.foto.mail.ru/mail/ghostdelvonte/32/s-160.png


 
Омлет ©   (2011-10-05 08:34) [1]

Код покажи.


 
Ega23 ©   (2011-10-05 08:57) [2]


> , а просто, сразу выход из процедуры?


try
 процедура
except
end
;

Но так делать не стоит, пустой except нужен бывает крайне редко.


 
И. Павел ©   (2011-10-05 09:10) [3]


> сообщение показывается, но те сообщения все равно вылазят

Попробуйте трассировать код - идите по строкам чтобы понять, куда программа уходит после exit.
В самом крайнем случае (например, если окажется, что исключения приходят из дополнительного потока в главный), то можно написать глобальный обработчик исключений application.onexception, и перехватывать ошибки там.
Хотя, скорее всего, где-то у вас выполняется что-то по таймеру.

> Моя дама полный "чайник" в компе

Так и не понял, при чем тут дама, если программу написали вы :)


 
Ega23 ©   (2011-10-05 09:20) [4]


> Так и не понял, при чем тут дама, если программу написали вы :)


Чё-ж тут непонятного-то?
http://lurkmore.ru/%D0%A3_%D0%BC%D0%BE%D0%B5%D0%B9_%D0%BF%D0%BE%D0%B4%D1%80%D1%83%D0%B3%D0%B8_%D1%81_%D0%B5%D1%91_%D0%BF%D0%B0%D1%80%D0%BD%D0%B5%D0%BC


 
RWolf ©   (2011-10-05 09:37) [5]

bass.dll.


 
Eeuwige Rouw   (2011-10-05 09:52) [6]


> Так и не понял, при чем тут дама, если программу написали
> вы :)


Хотел сделать ей сюрприз и облегчить ее нелегкую компьютерную жизнь, а в итоге напугал бедную, она подумала что я ей вирус подкинул, диспетчером то она не умеет пользоваться :)


> Код покажи.


with Mp1 do
begin
 try
 FileName := "....";
 Open;
 Play;
Except
 begin
 ShowMessage("Формат не поддерживается!");
 Exit;
end;
end;


вот такой...


 
Омлет ©   (2011-10-05 10:14) [7]

А если так?

with Mp1 do
begin
 Close;
 try
   FileName := "......";
   Open;
 except
   on E: Exception do
     ShowMessage("Формат не поддерживается!" + sLineBreak + E.Message);
 end;

 try
   Play;
 except
   on E: Exception do
     ShowMessage("Ошибка воспроизведения!" + sLineBreak + E.Message);
 end;
end;


 
Eeuwige Rouw   (2011-10-05 10:35) [8]


> А если так?


Нет, все-равно также...
само то сообщение появляется, но потом остальные, до бесконечности "No mci device open"...


 
Омлет ©   (2011-10-05 10:50) [9]

Значит, ты не весь код показал.
В дебаге после ShowMessage куда уходит?


 
sniknik ©   (2011-10-05 10:51) [10]

> Хотел сделать ей сюрприз и облегчить ее нелегкую компьютерную жизнь
поставь ей нормальный плейер типа "медиа плейер классик" например.

> написать глобальный обработчик исключений application.onexception, и перехватывать ошибки там.
вот, плюс чтобы не было "бесконечности" при первой данной (да и других того же класса) ошибке плейер нужно отключать.


 
sniknik ©   (2011-10-05 10:54) [11]

> Значит, ты не весь код показал.
Play; это "включатель" как понимаю, не более. ожидание конца проигрывания тут нет, оно идет в другом потоке (? х.з. као оно там устроено. но по идее).


 
QAZ   (2011-10-05 10:55) [12]

TMediaplayer не предназначен для mp3 в принципе, изначально,и всякие анальные способы описаные на форумах ничего не изменят


 
pushok   (2011-10-05 11:59) [13]


> Нет, все-равно также...само то сообщение появляется, но
> потом остальные, до бесконечности "No mci device open"..
> .


Ну тогда после сообшения поставь break ...


 
ProgRAMmer Dimonych ©   (2011-10-05 12:04) [14]

Предложу свою версию. По молодости, когда использовал TMediaPlayer, наблюдал за ним проблему при открытии файлов, пути к которым слишком длинные и/или содержат не-латинские буквы. Если тот же файл (кстати, MP3) копировал куда-нибудь поближе к корню диска, открывался на ура.


 
pushok   (2011-10-05 12:11) [15]


> ProgRAMmer Dimonych ©   (05.10.11 12:04) [14]

В таком случаи обычно пути в ковычках пишут чтоб пробелы не воспринимал как разделители


 
ProgRAMmer Dimonych ©   (2011-10-05 12:48) [16]

> [15] pushok   (05.10.11 12:11)
Так вот как раз пробелов-то в путях и не было, а проблема была.


 
Eeuwige Rouw   (2011-10-05 13:31) [17]

Вообщем, решил проблему!
Спасибо всем за то, что откликнулись!

Как решил:

Создал процедуру ( обработчик исключения )...
в создании формы указал на нее Application.OnException := AppException;

Как уже было сказано здесь, причиной бесконечности появления сообщений являлся таймер, он теперь отключается в процедуре-обработчике, а также закрывается сам плеер ( Mp1.Close )...

Вопрос закрыт! Примите мою благодарность!


 
QAZ   (2011-10-05 15:26) [18]

т.е. он как не играл некоторые файлы так и не играет,зато теперь молчит в тряпочку?
круто



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

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

Наверх




Память: 0.51 MB
Время: 0.009 c
2-1317776310
Eeuwige Rouw
2011-10-05 04:58
2012.01.15
TMediaplayer


15-1317155402
Юрий
2011-09-28 00:30
2012.01.15
С днем рождения ! 28 сентября 2011 среда


2-1317796120
Laguna
2011-10-05 10:28
2012.01.15
Обработка ошибок в открывающейся форме


15-1317426033
Кто б сомневался
2011-10-01 03:40
2012.01.15
Замедленный скролл при включенном видео в Win 7


2-1317364016
Phoenix
2011-09-30 10:26
2012.01.15
Работа с Вебсервисами с помощью Delphi2009