PDA

View Full Version : کمک ... مشکل با مدیا پلیر دلفی



delphi_stu
جمعه 05 اسفند 1384, 11:51 صبح
باسلام به همه دوستان
خواهشمندم کمکم کنید
من یک برنامه صوتی و تصویری می خوام طراحی کنم اما فایلهای dat رو نمی خونه و خطا میده
""" cannot determine the device type from the given filename extension """
از دوستان خواهشمندم راهکاری را به من بدن .
در مورد استفاده از کامپوننت هم اگه کامپوننت خوبی هست ممنون میشم بگین
باتشکر

javad_hosseiny
جمعه 05 اسفند 1384, 12:42 عصر
اگر جستجو می کردید زودتر به جواب می رسیدید
در کل ابزارهای بسیار دیگری برای این منظور هستند ولی در صورت استفاده از ابزار TMediaPlayerخود دلفی , این ابزار از mci خود ویندوز برای پخش فایلهای صوتی و تصویری استفاده می کند و درصورتی که Codec خاصی برای فایلهای موردنظر (پسوند dat) را نداشته باشه، TMediaPlayer هم نمی تونه فایلهای مربوط به اون رو پخش کنه.
پس لازم است که در ابتدا تنظیم موردنظر برای پخش فایلهای dat را در رجیستری انجام دهید (چرا که در حقیقت فایلهای پسوند dat نیز از خانواده mpeg هستند) بدین صورت که در صورت عدم وجود معرفی فایل dat به عنوان لیست فایلهای که توسط mci ویندوز پشتیبانی می شوند شما آن را به لیست اضافه کنید.


procedure Add_DAT_File_Support;
type
Tgetver=record
winver,winrev :Dword;
end;
var
Reg : TRegistry;
allver:Tgetver ;
begin
allver.winrev := GetVersion ;
allver.winver := GetVersion ;
allver.winrev := (LOBYTE(LOWORD(allver.winrev)));
allver.winver := (HIBYTE(LOWORD(allver.winver)));
if (allver.winrev=5) and (allver.winver=1) then
begin
Reg := TRegistry.Create;
try
Reg.RootKey := HKEY_LOCAL_MACHINE;
if Reg.OpenKey('SOFTWARE\Microsoft\Windows NT\CurrentVersion\MCI Extensions',False) then;
if not Reg.ValueExists('dat') then
Reg.WriteString('dat','MPEGVideo')
finally
Reg.Free;
end;
end;
end;

البته اصل برنامه متعلق به آقای علی کشاورز است
http://www.barnamenevis.org/forum/showthread.php?t=32296
و بنده تغییر کوچکی جهت انجام آن در محیط ویندوز xp کردم چرا که آدرس آن در ویندوز 98و... متفاوت است ودر صورتی که مایل به انجام این کار در ویندوزهای دیگر نیز باشید با توجه به آدرس رجیستری مطابق سورس فوق آن را اضافه کنید.

delphi_stu
جمعه 05 اسفند 1384, 14:47 عصر
با عر ض سلام و تشکر
ممنونم از اینکه راهنمایی کردید .
یه سوال هم داشتم اینکه برنامه نویسی با دلفی بهتره یا ویژوال بیسیک ؟ [در برنامه ای که مربوط به بانک اطلاعاتی است]

delphi_stu
جمعه 05 اسفند 1384, 15:27 عصر
با عرض سلام
ازtregistry خطا میگیره .. این رو جایی از برنامه نباید تعریف کنیم ؟
تا TRegistry رو بشناسه
ممنون

Hamid_PaK
جمعه 05 اسفند 1384, 15:43 عصر
TRegistry مربوط می شه به یونیت Registry باید به یوززهاتون اضافه کنید ...

یا حق !!!

delphi_stu
جمعه 05 اسفند 1384, 15:51 عصر
ممنون عزیز جان . پیداش کردم .
اما توضیحی خودم بدم برای دوستانی که مثل من آماتورن.
دوستان برای اضافه کردن این باید در قسمت uses
registry رو اضافه کنین .
ممنون از همه دوستان

delphi_stu
جمعه 05 اسفند 1384, 16:46 عصر
در هنگام اجرای فیلم اگه برنامه ای دیگر یا هر چیز دیگری را روی برنامه بکشم . تصویر از بین می رود برای جلوگیری از این کار باید چه کنم ؟
مثلا در ویژوال بیسیک برای اینکار خاصیت Auto redraw است . آیا در دلفی هم هست ؟

delphi_stu
جمعه 05 اسفند 1384, 17:09 عصر
سلام
من بوسیله رویداد paint تونستم مشکل بالا رو حل کنم اما بعضی مواقع باید روی فرم کلیک شه یا روی عنوان فرم کلیک شه تا بیاد میشه راهنمایی کنید .

delphi_stu
جمعه 05 اسفند 1384, 19:16 عصر
سلام
اگه بخوام به جای یک فایل در قسمت
if not Reg.ValueExists('dat') then
به جای dat لیستی از پسوندها رو بگیره و در صورت عدم وجود اونو بسازه . چکار باید بکنم؟
با چه دستوری لیست رو بسازم و چگونه فراخوانی کنم؟
لطفا اگه میشه راهنمایی کنید.

delphi_stu
جمعه 05 اسفند 1384, 19:51 عصر
به جای 'dat' میشه یه رشته قرار بدیم .
if not Reg.ValueExists('dat') then
Reg.WriteString('dat','MPEGVideo')
لطفا راهنمایی کنید