پدرخوانده
چهارشنبه 24 مهر 1387, 21:08 عصر
با استفاده از نمونه مثال موجود در سولیشن خود ویژوال فاکس که برای پخش فایلهای صوتی و تصویری است برنامه ای نوشته ام که متاسفانه در برخی از فرمتها و در برخی از سیستم ها مشکل دارد (یعنی اینکه در خیلی از سیستم ها بدون مشکل تمامی فرمتها را ساپورت می کند که الزاما بخاطر نصب برخی از نرم افزارها همچون xpcode, ... و یا موارد دیگر بوده است)
که با توجه به جستجو در سایت و گوگل و راهنمایی برخی دوستان نرم افزارهای مختلفی را بر روی ویندوز نصب کرده ام (جهت ست شدن دیفالت قابلیت mciplayer خود ویندوز برای ساپورت تمام فورمتها فایلهای صوتی و تصویری) ولیکن باز برنامه مذکور قابلیت پخش را ندارد (وجالبتر اینکه همین برنامه در برخی دیگر از سیستم ها چنین مشکلی نداشته و تمامی فرمتها را ساپورت می کند حتی با قیاس نرم افزارها و ... موجود در هر دو سیستم متاسفانه به جواب نرسیدم)
(حالا اگر دوستان در این مورد به جواب قاطعی رسیده اند (یعنی اینکه نرم افزار مذکور جهت اضافه کردن فورمتهای متداول (همچون mpag, dat,wmv و ....) به هسته داخلی ویندوز (البته اینجا منظور کد api مربوط به mci می باشد) ) ممنون خواهم شد که بنده را نیز راهنمایی کنند
القصه
تصمیم به تغییر روتین اصلی پخش فایلهای صوتی و تصویری در برنامه خود گرفتم و سراغ ابزار mediaplayer خود ویندوز رفتم (چرا که این ابزار در تمامی سیستمها اکثریت فورمتها را ساپورت می کند و حتی با نصب نرم افزارهای همچون xpcodec, ... قادر به پخش فورمتهای mpeg4,... نیز می باشد)
حالا در این رابطه مشکلی دارم بدین صورت که توانستم با پارامترهای مربوط از طریق کدنویسی و قرار دادن تراک بار امکان تایم لاین و کلیه گزینه های زمان جاری و پلی و پوز و استوپ و .. را پیدا کنم
oWMP= CREATEOBJECT("WMPlayer.OCX") && create media player object
owmp.URL = 'd:\1.wmv' && load multimedia file
owmp.controls.play && play file
owmp.controls.pause && pause file
owmp.controls.stop && stop file
owmp.currentMedia.duration && size of file for control with trackbar
owmp.currentMedia.durationString && size of file for show in label with hh:mm:ss
owmp.controls.currentPosition && postion of play file for show in trackbar (used in timer object)
owmp.controls.currentPositionString && posting of play file for show in label (current time)
...
...
...
owmp.close && close of mediaplayer object
ولیکن در کنترل صفحه مربوط به نمایش فیلم مشکل دارم (دقت داشته باشید که بنده مدیاپلیر را بصورت آبجکت فراخوانی کرده و تصمیم بر نمایش خود محیط اینترفیس مدیاپلیر ندارم (چرا که در نمونه مثالهای فراوانی که در اینترنت پیدا کردم اکثریت خود ocx مربوط به مدیاپلیر را فراخوانی کرده و با پارامترهای آن ، آنرا کنترل کرده اند ولی بنده تاکید دارم که به هیچ عنوان اینترفیس مربوط به مدیاپلیر در نرم افزار خود را به کاربر نمایش نداده و در پشت پرده تمامی کارها انجام شود
با توجه به مطالعه مثال mci موجود در سولیشن یک پنل از ابزار shape در فرم قرار داده و سعی در کنترل خروجی مدیاپلیر با توجه به بدست آوردن هندل مربوطه به این آبجکت هستم
DECLARE integer SetWindowPos IN User32 integer, integer, integer, integer, integer, integer, integer
Main_hWnd =_VFP.hWnd
cur_window = THISFORM.HWnd
hWin = ????? "status Mediaplayer window handle wait" ????????
x1Pos = THISFORM.player.LEFT
y1Pos = THISFORM.player.TOP
x2Pos = THISFORM.player.width
y2pos = THISFORM.player.height
*!* Use the SetWindowPos Windows function to set position and size
setWindowPos(hWin,0,x1Pos,y1Pos,x2Pos,y2Pos,0)
حال دقیقا در همان قسمتی که بدنبال بدست آوردن هندل مربوط به آبجکت مدیاپلیر هستم که متاسفانه در پارامترهای مربوطه پیدا نکردم (1) و دوم اینکه آیا اصلا این روش ، روش مناسبی برای هدایت صفحه پخش فیلم توسط این ابزار می باشد یا خیر؟!!!
و اگر برای کنترل صفحه فیلم مربوطه امکان دیگری نیز هست (مثلا کل اینترفیس مربوطه به مدیاپلیر را نمایش داده و با توجه به پارامترهای آن قسمت فیلم آن را فقط کاربر ببیند، چرا که حتی با کنترل طول و عرض آبجکت موردنظر ابزار پلی و پوز و ولوم و تایم لاین و ... در پاین ابزار حتما وجود دارد )
به هر حال ممنون میشوم دوستان نظری در این رابطه مطرح نمایند
که با توجه به جستجو در سایت و گوگل و راهنمایی برخی دوستان نرم افزارهای مختلفی را بر روی ویندوز نصب کرده ام (جهت ست شدن دیفالت قابلیت mciplayer خود ویندوز برای ساپورت تمام فورمتها فایلهای صوتی و تصویری) ولیکن باز برنامه مذکور قابلیت پخش را ندارد (وجالبتر اینکه همین برنامه در برخی دیگر از سیستم ها چنین مشکلی نداشته و تمامی فرمتها را ساپورت می کند حتی با قیاس نرم افزارها و ... موجود در هر دو سیستم متاسفانه به جواب نرسیدم)
(حالا اگر دوستان در این مورد به جواب قاطعی رسیده اند (یعنی اینکه نرم افزار مذکور جهت اضافه کردن فورمتهای متداول (همچون mpag, dat,wmv و ....) به هسته داخلی ویندوز (البته اینجا منظور کد api مربوط به mci می باشد) ) ممنون خواهم شد که بنده را نیز راهنمایی کنند
القصه
تصمیم به تغییر روتین اصلی پخش فایلهای صوتی و تصویری در برنامه خود گرفتم و سراغ ابزار mediaplayer خود ویندوز رفتم (چرا که این ابزار در تمامی سیستمها اکثریت فورمتها را ساپورت می کند و حتی با نصب نرم افزارهای همچون xpcodec, ... قادر به پخش فورمتهای mpeg4,... نیز می باشد)
حالا در این رابطه مشکلی دارم بدین صورت که توانستم با پارامترهای مربوط از طریق کدنویسی و قرار دادن تراک بار امکان تایم لاین و کلیه گزینه های زمان جاری و پلی و پوز و استوپ و .. را پیدا کنم
oWMP= CREATEOBJECT("WMPlayer.OCX") && create media player object
owmp.URL = 'd:\1.wmv' && load multimedia file
owmp.controls.play && play file
owmp.controls.pause && pause file
owmp.controls.stop && stop file
owmp.currentMedia.duration && size of file for control with trackbar
owmp.currentMedia.durationString && size of file for show in label with hh:mm:ss
owmp.controls.currentPosition && postion of play file for show in trackbar (used in timer object)
owmp.controls.currentPositionString && posting of play file for show in label (current time)
...
...
...
owmp.close && close of mediaplayer object
ولیکن در کنترل صفحه مربوط به نمایش فیلم مشکل دارم (دقت داشته باشید که بنده مدیاپلیر را بصورت آبجکت فراخوانی کرده و تصمیم بر نمایش خود محیط اینترفیس مدیاپلیر ندارم (چرا که در نمونه مثالهای فراوانی که در اینترنت پیدا کردم اکثریت خود ocx مربوط به مدیاپلیر را فراخوانی کرده و با پارامترهای آن ، آنرا کنترل کرده اند ولی بنده تاکید دارم که به هیچ عنوان اینترفیس مربوط به مدیاپلیر در نرم افزار خود را به کاربر نمایش نداده و در پشت پرده تمامی کارها انجام شود
با توجه به مطالعه مثال mci موجود در سولیشن یک پنل از ابزار shape در فرم قرار داده و سعی در کنترل خروجی مدیاپلیر با توجه به بدست آوردن هندل مربوطه به این آبجکت هستم
DECLARE integer SetWindowPos IN User32 integer, integer, integer, integer, integer, integer, integer
Main_hWnd =_VFP.hWnd
cur_window = THISFORM.HWnd
hWin = ????? "status Mediaplayer window handle wait" ????????
x1Pos = THISFORM.player.LEFT
y1Pos = THISFORM.player.TOP
x2Pos = THISFORM.player.width
y2pos = THISFORM.player.height
*!* Use the SetWindowPos Windows function to set position and size
setWindowPos(hWin,0,x1Pos,y1Pos,x2Pos,y2Pos,0)
حال دقیقا در همان قسمتی که بدنبال بدست آوردن هندل مربوط به آبجکت مدیاپلیر هستم که متاسفانه در پارامترهای مربوطه پیدا نکردم (1) و دوم اینکه آیا اصلا این روش ، روش مناسبی برای هدایت صفحه پخش فیلم توسط این ابزار می باشد یا خیر؟!!!
و اگر برای کنترل صفحه فیلم مربوطه امکان دیگری نیز هست (مثلا کل اینترفیس مربوطه به مدیاپلیر را نمایش داده و با توجه به پارامترهای آن قسمت فیلم آن را فقط کاربر ببیند، چرا که حتی با کنترل طول و عرض آبجکت موردنظر ابزار پلی و پوز و ولوم و تایم لاین و ... در پاین ابزار حتما وجود دارد )
به هر حال ممنون میشوم دوستان نظری در این رابطه مطرح نمایند