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

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.004 c
3-1269596428
Kley
2010-03-26 12:40
2012.01.15
как правильно организовать вставку записей


15-1314770110
Омлет
2011-08-31 09:55
2012.01.15
RSS для DelphiMaster


9-1175164239
crytogen
2007-03-29 14:30
2012.01.15
нарисовать трубу в OpenGL по точкам


15-1317129600
OW
2011-09-27 17:20
2012.01.15
Никто случайно Lotus к Oracle не подключал? или к MSSQL


15-1317056504
Dennis I. Komarov
2011-09-26 21:01
2012.01.15
Бегство с тонущего корабля





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