PDA

View Full Version : استفاده از اکتیویکس WindowsMediaPlayer در یک thread دیگر



Mask
شنبه 08 اسفند 1388, 01:15 صبح
با سلام
در برنامه ای مجبور شدم از WindowsMediaPlayer استفاده کنم.
چون استفاده از این اکتیویکس و پخش آهنگ خیلی بار روی سیستم میزاره و برنامه اصلی من کارهای کنترلی انجام میده . در اصل برنامه خلل ایجاد میکنه چون تمام فرامین در یک thread هست.
می خاستم بپرسم چطوری باید این WindowsMediaPlayer رو در یه thread دیگه بار گذاری کنم.
اگه ممکنه دوستان کد یا سورسی در این رابطه قرار بدهند.
با تشکر.

Mahmood_M
شنبه 08 اسفند 1388, 13:36 عصر
اين مقاله رو بخونيد (http://barnamenevis.org/forum/showthread.php?t=79463) ، Thread تون رو ايجاد كنيد و هرجايي كه به مشكل برخورديد بپرسيد ... ، اينطوري سئوالتون خيلي كلي هست ، بهتره بگيد كه مشكل دقيقا كجاست ؟

موفق باشيد ...

Mask
شنبه 08 اسفند 1388, 15:27 عصر
ممنون آقا محمود
من این مقاله رو قبلا خوندم.
سوال اینه که چون مدیا پلیر یک شی دارد و کلیه روند اجرایی بر روی فرم اصلی و ظاهری برنامست چطوری باید این شی و روند اجرایی رو در یه ترید دیگه قرار داد.
با تشکر

vcldeveloper
یک شنبه 09 اسفند 1388, 01:34 صبح
اون کنترل یک کنترل ActiveX هست، برای استفاده ازش در هر Thread باید Initialize بشه. در Thread اصلی دلفی خودش این کار را انجام میده. در سایر Threadها خودتون باید این کار را بکنید.

توی همین تالار CoInitialize را جستجو کنید؛ قبلا درباره اش توضیح دادم.

Mahmood_M
یک شنبه 09 اسفند 1388, 04:05 صبح
يك نكته اضافه كنم و اون اينكه شي رو در Thread ساخته شده بسازيد و ازش استفاده كنيد ،‌ مثال :
procedure TMyThread.Execute;
var
WMP : TWindowsMediaPlayer;
begin
CoInitialize(nil);
WMP := TWindowsMediaPlayer.Create(nil);
WMP.Parent := Form1;
WMP.Visible := True;
WMP.Settings.AutoStart := False;
WMP.URL := 'M.AVI';
WMP.Controls.play;
CoUninitialize;
end;

موفق باشيد ...