PDA

View Full Version : سوال: چگونه اجرا فیلم و آهنگ در ویژوال بیسیک



saeed7474
دوشنبه 10 مهر 1391, 21:09 عصر
سلام دوستان
دارم یه برنامه می نویسم
و میخوام فیلم و اهنگ درش قرار بدم
مثلا
یه عکس پیشتمایش از فیلم باشه کاربر روش کلیک کنه اجرا شه

یا اهنگ

چطور این کارو بکنم

ممنون

saeed7474
دوشنبه 10 مهر 1391, 22:08 عصر
و همچنین چطوری اهنگ ها و فیلمارو وارد نرم افزار کنم که بعدا باهاش نصب بشه ؟

پروژه استاندارده

MohammadGh2011
سه شنبه 11 مهر 1391, 09:54 صبح
سلام عليکم

با استفاده از کنترل windows media player ميشه اين کار رو انجام داد.

saeed7474
سه شنبه 11 مهر 1391, 21:09 عصر
خیلی ممنون
میشه بگید بعد چیکار کنم که وقتی نرم افزار رو کسی نصب کنه یا نرم افزار بصورت پرتابل اجرا کنه

اهنگ ها و ویدئو ها هم همراهش باشه ؟
چه ادرس بدم ؟ نرم افزار و اهنگا رو در یک پوشه بسازم ؟

saeed7474
سه شنبه 11 مهر 1391, 22:10 عصر
یا بهتره بگم چطور ادرس موزیک یا ویدئو رو در کنترل بدم که بعدا که فایل ستاپ رو ساختم کاربر هرجا برنامه رو نصب کرد فایل اجرا بشه

مثلا الان من ادرس یه فایل موزیک رو میدم تو سیستم من D:/music/a.mp3 اما خب این تو سیستم بقیه نیست
میخوام هرجا که نرم افزار رو نصب کرد فایل ها هم همونجا ریخته بشه و ادرس فایل در کنترل مدیا پلیر از اونجا گرفته بشه
*:/*../a.mp3

saeed7474
چهارشنبه 12 مهر 1391, 00:02 صبح
فایل ها باید وارد بانک اطلاعاتی بشه ؟
از کنترل OLE هم میشه استفاده کرد؟

SlowCode
چهارشنبه 12 مهر 1391, 09:06 صبح
نه در این مورد استفاده از پایگاه داده درست نیست.
برای آهنگ ها هم اگه کنار برنامت باشن از کد زیر استفاده کن:

strPath = App.path & "\a.mp3"

برای پرتابل کردن هم میتونی از VMWare ThinApp استفاده کنی. البته به صورت دستی هم میتونی ولی به دردسرش نمی ارزه.

saeed7474
پنج شنبه 13 مهر 1391, 12:53 عصر
ممنون از کمک دوستان

مدیا پیلیر همه فرمتا رو اجرا میکنه ؟

SlowCode
پنج شنبه 13 مهر 1391, 14:22 عصر
نه فقط فرمت هایی که ویندوز مدیا پلیر پشتیبانی میکنه. متاسفانه مدیاپلیر ویندوز کامل نیست و بعضی از فرمت ها رو باز نمیکنه.

saeed7474
پنج شنبه 13 مهر 1391, 19:49 عصر
پس برای بقیه فرمت ها چیکار کنیم مثلا mkv

amin32
پنج شنبه 13 مهر 1391, 19:58 عصر
اگه کدکهای مربوط به فرمت روی سیستم نصب باشه , همون کامپوننت windows media player پخش میکنه.
میتونید Setup رو جوری طراحی کنید که نصب کدکها هم در هنگام نصب نرم افزار اجرا بشه.

saeed7474
پنج شنبه 13 مهر 1391, 20:17 عصر
اگه کدکهای مربوط به فرمت روی سیستم نصب باشه , همون کامپوننت windows media player پخش میکنه.
میتونید Setup رو جوری طراحی کنید که نصب کدکها هم در هنگام نصب نرم افزار اجرا بشه.
چجور این کار روباید کرد ؟

ویه سوال دیگه

می خوام فرمی که اهنگو پخش میکنه اگر اهنگ در حال پخش باشه و کاربر روی دکمه برگشت کلیک کنه از کاربر سوال کنه ایا پخش بشه اهنگ یا نه . چطور ممکنه ؟ با استفاده از مسیج باکس و if ؟

و اگه ویدئو در حال پخش باشه
if windosmediaplayer
چه مشخصه ای باید \ false بشه تا ویدئو قطع بشه ؟

SlowCode
پنج شنبه 13 مهر 1391, 20:37 عصر
کاری نمیشه کرد، مگر اینکه از کامپوننت برنامه ای که اونو پشتیبانی میکنه استفاده کنی، که من تا حالا ندیدم.

amin32
پنج شنبه 13 مهر 1391, 20:46 عصر
چجور این کار روباید کرد ؟

ویه سوال دیگه

می خوام فرمی که اهنگو پخش میکنه اگر اهنگ در حال پخش باشه و کاربر روی دکمه برگشت کلیک کنه از کاربر سوال کنه ایا پخش بشه اهنگ یا نه . چطور ممکنه ؟ با استفاده از مسیج باکس و if ؟

و اگه ویدئو در حال پخش باشه
if windosmediaplayer
چه مشخصه ای باید \ false بشه تا ویدئو قطع بشه ؟

فایلهای مربوط به نصب کدک زیاد هستند ولی فکر میکنم استفاده از اونها به این شکل از نظر قانون کپی رایت درست نباشه , و مشکل داشته باشه!
به هر حال بر فرض اگه شما فایل کدک رو از صفحه زیر دانلود کرده باشید:
http://p30download.com/fa/entry/818/software/multimedia/codec-packs/%D8%AF%D8%A7%D9%86%D9%84%D9%88%D8%AF-k-lite-mega-codec-packs-%DA%A9%D8%A7%D9%85%D9%84-%D8%AA%D8%B1%DB%8C%D9%86-%D9%86%D8%B1%D9%85-%D8%A7%D9%81%D8%B2%D8%A7%D8%B1-%D9%BE%D8%AE%D8%B4-%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7%DB%8C-%D8%B5%D9%88%D8%AA%DB%8C-%D9%88-%D8%AA%D8%B5%D9%88%DB%8C%D8%B1%DB%8C/

حالا به نظرم آسونترین راه اینه اون فایل رو در کنار فایل نصب برنامه قرار بدید و به کاربرای برنامتون بگید که هر دو فایل رو نصب کنن .

سوال دومتون یکم گنگ بود!

برای توقف پخش باید از کد زیر استفاده کنید:

WindowsMediaPlayer1.Controls.stop

saeed7474
پنج شنبه 13 مهر 1391, 20:50 عصر
اها هر دو فایل رو مثلا تو setup factory مشخص میکنیم نصب کنه ؟.

سوال دومم

مشخصه play و stop مدیا پلیره

و اینکه چگونه اگه موس مثلا رو یه لیبل به اسم play بره(بدون کلیک)DragOver یه فایل که ادرسشو مشخص کردیم شروع به پخش کنه

SlowCode
پنج شنبه 13 مهر 1391, 20:54 عصر
شما اول امتحان کن ببین با نصب کدک مدیاپلیر اون فرمت ها رو باز میکنه یا نه! شاید اصلا نشه!
کدت رو توی MouseMove لیبل بنویس نه DragOver.

amin32
پنج شنبه 13 مهر 1391, 21:03 عصر
اها هر دو فایل رو مثلا تو setup factory مشخص میکنیم نصب کنه ؟.


نه ! یک فایل که نصب کدک هست و یک فایل هم نصب برنامه شما. این دو فایل رو به کاربرتون تحویل میدید تا تک تک نصب کنن. البته فکر میکنم در روشی دیگه بتونید setup ساز رو هم جوری تنظیم کنید که بعد از نصب خود برنامه ( برنامه شما ) فایل نصب کدک رو هم به صورت خودکار اجرا کنه تا توسط کاربر نصب بشه. که این موضوع برمیگرده به نوع Setup ساز .

saeed7474
پنج شنبه 13 مهر 1391, 21:05 عصر
شما اول امتحان کن ببین با نصب کدک مدیاپلیر اون فرمت ها رو باز میکنه یا نه! شاید اصلا نشه!
کدت رو توی MouseMove لیبل بنویس نه DragOver.

تو MouseMove نوشتم درست شد . خیلی ممنون

فکر کنم بشه کدک برای همه پلیر هاست

یا فرمت ها رو هم تبدیل کنم فکر کنم بشه خاطر جمع تره

saeed7474
پنج شنبه 13 مهر 1391, 21:09 عصر
نه ! یک فایل که نصب کدک هست و یک فایل هم نصب برنامه شما. این دو فایل رو به کاربرتون تحویل میدید تا تک تک نصب کنن. البته فکر میکنم در روشی دیگه بتونید setup ساز رو هم جوری تنظیم کنید که بعد از نصب خود برنامه ( برنامه شما ) فایل نصب کدک رو هم به صورت خودکار اجرا کنه تا توسط کاربر نصب بشه. که این موضوع برمیگرده به نوع Setup ساز .
بله حرفتون درسته فوقش یه فایل help قرار میدم که بگم هر دو رو نصب کنن اگرم بتونم روش دوم که فکر کنم خاطر جمع تره اگه نرم افزار این قابلیت رو داشته باشه فکر کنم تو اکشن باشه

saeed7474
پنج شنبه 13 مهر 1391, 21:17 عصر
یه مشکل دیگه که هست اینه
مثلا من
3 تا لیبل قرار دادم

music 1
music 2
music 3

با رفتن مثلا روی

music 2
این موزیک اجرا میشه بعد احتمال داره کاربر سریع موسش بره رو
music 3
این قطع میشه اون اجرامیشه

میخوام تا یه موزیک به اخر نرسیده اون یکی شروع نشه !
؟

amin32
پنج شنبه 13 مهر 1391, 21:27 عصر
فکر میکنم شما میخواید یک چیزی مثل محتوای الکترونیک درست کنید درسته؟!
به هر حال برای این کار باید این خاصیت رو تست کنید:

WindowsMediaPlayer1.playState


اگه ۱ بود یعنی در حالت stop قرار داره اگه ۳ باشه یعنی در حالت پخش قرار داره.

SlowCode
پنج شنبه 13 مهر 1391, 21:27 عصر
If WindowsMediaPlayer1.Status <> "Stopped" Then
WindowsMediaPlayer1.Controls.play
End If

saeed7474
پنج شنبه 13 مهر 1391, 21:39 عصر
اشتباهه !
بازم پخش میکنه

SlowCode
پنج شنبه 13 مهر 1391, 21:43 عصر
ببخشید، درست شد:
If WindowsMediaPlayer1.Status = "Stopped" Then
WindowsMediaPlayer1.Controls.play
End If

amin32
پنج شنبه 13 مهر 1391, 21:48 عصر
اشتباهه !
بازم پخش میکنه

فکر کنم کدی که دوستمون گفتن هم درسته. فقط باید کد تغییر url رو هم بعد از شرط و قبل از دستور play قرار بدید و به بزرگی و کوچکی حروف "Stopped" دقت کنید.

saeed7474
پنج شنبه 13 مهر 1391, 21:55 عصر
ببخشید، درست شد:
If WindowsMediaPlayer1.Status = "Stopped" or "" Then
WindowsMediaPlayer1.Controls.play
End If
error 13 mide

amin32
پنج شنبه 13 مهر 1391, 21:59 عصر
فکر کنم این کد کارتون رو حل کنه. البته مسیر فایل رو خودتون تغییر بدید :


If WindowsMediaPlayer1.playState = 1 Or WindowsMediaPlayer1.playState = 0 Then
WindowsMediaPlayer1.URL = "c:\music3.mp3"
WindowsMediaPlayer1.Controls.play
End If

saeed7474
پنج شنبه 13 مهر 1391, 22:17 عصر
فکر کنم این کد کارتون رو حل کنه. البته مسیر فایل رو خودتون تغییر بدید :


If WindowsMediaPlayer1.playState = 1 Or WindowsMediaPlayer1.playState = 0 Then
WindowsMediaPlayer1.URL = "c:\music3.mp3"
WindowsMediaPlayer1.Controls.play
End If

خیلی ممنون درست شد:قلب:

saeed7474
جمعه 14 مهر 1391, 20:52 عصر
ویه سوال دیگه

می خوام فرمی که اهنگو پخش میکنه اگر اهنگ در حال پخش باشه و کاربر روی دکمه برگشت کلیک کنه از کاربر سوال کنه ایا پخش بشه اهنگ یا نه . چطور ممکنه ؟ با استفاده از مسیج باکس و if ؟

و اگه ویدئو در حال پخش باشه
if windosmediaplayer
چه مشخصه ای باید \ false بشه تا ویدئو قطع بشه ؟If wmp.Controls.play Then
MsgBox "Play Music?", vbYesNo + vbQuestion + vbDefaultButton2, "Play music?"
End If
If vbDefaultButton2 Then
wmp.Controls.stop
Else
wmp.Controls.play
End If

این کدو میزنم ارور میده !؟

amin32
شنبه 15 مهر 1391, 03:53 صبح
If wmp.Controls.play Then
MsgBox "Play Music?", vbYesNo + vbQuestion + vbDefaultButton2, "Play music?"
End If
If vbDefaultButton2 Then
wmp.Controls.stop
Else
wmp.Controls.play
End If

این کدو میزنم ارور میده !؟

در شرطی که نوشتید, wmp.Controls.play در واقع دستور پخش هست و هیچ مقدار برگشتی نداره تا در شرط بررسی بشه. همونطور که گفتم برای بررسی در حال پخش بودن باید WindowsMediaPlayer1.playState رو بررسی کنید که در حالت play برابر 3 هست. پس شرط شما میشه:

if wmp.playState=3 then


در مورد مسیج باکس هم اشتباه عمل کردید. فکر میکنم کد درست میشه:

if wmp.playState=3 then
answer= MsgBox("Play music?", vbYesNo + vbQuestion + vbDefaultButton2, "Play music?"")
End If
If answer= vbNo Then
wmp.Controls.stop
Else
wmp.Controls.play
End If

saeed7474
شنبه 15 مهر 1391, 07:52 صبح
در شرطی که نوشتید, wmp.Controls.play در واقع دستور پخش هست و هیچ مقدار برگشتی نداره تا در شرط بررسی بشه. همونطور که گفتم برای بررسی در حال پخش بودن باید WindowsMediaPlayer1.playState رو بررسی کنید که در حالت play برابر 3 هست. پس شرط شما میشه:

if wmp.playState=3 then


در مورد مسیج باکس هم اشتباه عمل کردید. فکر میکنم کد درست میشه:

if wmp.playState=3 then
answer= MsgBox("Play music?", vbYesNo + vbQuestion + vbDefaultButton2, "Play music?"")
End If
If answer= vbNo Then
wmp.Controls.stop
Else
wmp.Controls.play
End If

مسیج باکس تو متغیر قرار نمیگیره !

amin32
شنبه 15 مهر 1391, 08:01 صبح
مسیج باکس تو متغیر قرار نمیگیره !

چرا دوست عزیز. تابع مسیج باکس دارای یک مقدار برگشتی از نوع integer هست که در واقع نوع پاسخ کاربر رو مشخص میکنه. اگر خطایی رو مشاهده کردید به خاطر اشتباه تایپی بود که در آخر دو تا " قرار گرفت به جای یکی.

saeed7474
شنبه 15 مهر 1391, 10:10 صبح
نه درست تایپ کردم

ارور
Compile Error
Expected : end of statment

amin32
شنبه 15 مهر 1391, 11:11 صبح
دوست عزیز متوجه نشدی چی میگم! منظورم این بود که من بد تایپ کردم و دو تا کاراکتر " پشت سر هم تایپ کردم. یعنی کد درست میشه:


if wmp.playState=3 then
answer= MsgBox("Play music?", vbYesNo + vbQuestion + vbDefaultButton2, "Play music?")
End If
If answer= vbNo Then
wmp.Controls.stop
Else
wmp.Controls.play
End If


انتظار داشتم دیگه اینو خودتون اصلاحش کنید.

saeed7474
شنبه 15 مهر 1391, 11:56 صبح
دوست عزیز متوجه نشدی چی میگم! منظورم این بود که من بد تایپ کردم و دو تا کاراکتر " پشت سر هم تایپ کردم. یعنی کد درست میشه:


if wmp.playState=3 then
answer= MsgBox("Play music?", vbYesNo + vbQuestion + vbDefaultButton2, "Play music?")
End If
If answer= vbNo Then
wmp.Controls.stop
Else
wmp.Controls.play
End If


انتظار داشتم دیگه اینو خودتون اصلاحش کنید.
چرا متوجه شدم
میگم که ارور میده تا متغیر رو میذارم

این کدمه

If wmp.playState = 3 Then
answer = MsgBox("پخش شود موزیک ؟", vbYesNo + vbQuestion + vbDefaultButton2, "Play music?"
End If
If answer = vbNo Then
wmp.Controls.stop
Else
wmp.Controls.play
End If


ممنون،درست شد

amin32
شنبه 15 مهر 1391, 12:03 عصر
صد در صد دارید اشتباه میکنید چون من دوباره همین کد رو از همین جا کپی کردم و بدون هیچ مشکلی اجرا شد.

saeed7474
شنبه 15 مهر 1391, 12:17 عصر
صد در صد دارید اشتباه میکنید چون من دوباره همین کد رو از همین جا کپی کردم و بدون هیچ مشکلی اجرا شد.
همین کد من ؟

نمی دونم چه مشکلی داشت ، فکر کنم چون من () ها رو نذاشته بودم
ولی به هر حال درست شد

ممنون

SlowCode
شنبه 15 مهر 1391, 14:42 عصر
فکر کنم چون من () ها رو نذاشته بودم
بله اون خطا به خاطر نذاشتن پرانتز بود.

l4dl4d
یک شنبه 23 مهر 1391, 17:43 عصر
برای فرمت های دیگه از ocx های زیر استفاده کنید : (یا خودتون با c++ ایجاد کنید :شیطان:(اگه بلدین؟!!))
mkvview.ocx
aviproc.ocx
vidcollection.ocx
DVDPLAY.OCX

AliRezaBeytari
جمعه 29 دی 1391, 17:12 عصر
محسن 15 آقا ؛ اگر از Visual Studio 2010 استفاده کنیم ، این کد مفهومی ندارد ؛ پس باید چه کار کرد؟

SlowCode
جمعه 29 دی 1391, 18:01 عصر
محسن 15 آقا ؛ اگر از Visual Studio 2010 استفاده کنیم ، این کد مفهومی ندارد ؛ پس باید چه کار کرد؟
سلام
فکر نکنم مشکلی داشته باشه، چون متدهای کنترل یکی هستن. شاید یه جاییش رو درست ننوشتی.
بهتره این سوال رو تو بخش مربوطه و یا با پیام خصوصی بپرسی. چون به vb6 مربوط نمیشه و حذف میشه.

hosains.or
شنبه 14 تیر 1393, 01:15 صبح
دوستان من از mmcontrol استفاده کردم:بامزه:
بعد از اینکه فایل های MP3 اجرا میشن نتونستم اونها رو قطع کنم یعنی با پخش فایل بعدی فایل های قبلی هنوز در حال پخش هستنکسی اگر کده متوقف کردن اونهارو بلده بگه!:افسرده:

Private Sub Form_Load()

MMControl1.Notify =False

MMControl1.Wait =True

MMControl1.Shareable =False

end sub

Private Sub CMD_Click()

MMControl1.FileName ="c:\test.mp3' or any type like wav or MP4

MMControl1.Command ="Open"

end sub