بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
انا ابرمج مشروع مشل صوت وفيديو ( جميع الصيغ ) التي اعرفها
ولقد ببعض الاضافات والتديلات لكن واجهتني بعض المشاكل حاولت حلها
بأكثر من طريقة لكن لاجدوى
لقد وضعت لكم الاقتباسات للخطوات التي قمت بها
اولا لقد اضفت اداة
قمت بحذف كود اضافة الفلاش وليس الاداة فقط الكود
وقمت باضافة الكود
اقتباس:
Dim dlg As New OpenFileDialog
dlg.Filter = "All Files|*.(*.wav;*.mp3;*.mp4;*.mpeg;*.dat;*.wma;*.wm v;*.rm;*.ram;*.avi;*.asf;*."
If dlg.ShowDialog() = Windows.Forms.DialogResult.OK Then
PictureBox5.Visible = False
AxWindowsMediaPlayer1.URL = dlg.FileName
AxWindowsMediaPlayer1.Ctlcontrols.play()
AxWindowsMediaPlayer1.Visible = True
مع جميع الصيغ التي تتوفر في برنامج محول الصيغ لانني لااعرفها كلها
ولكن عند اضافة الكود وتجربة المشروع يختفي زر فتح فقمت بحذف هذا السطر
اقتباس:
PictureBox5.Visible = False
وجربت المشرو ع ونجح الامر لكن اداة الميديا طلت كما هي وان اريد احذة الادوات التي فيها
وجربت
اقتباس:
لكي تخفي الادوات ارسم اداة بانل على الشريط فقط
لم استفد شيء بالعكس لم يطهر الفيديو
اقتباس:
قم بحذف PictureBox لظهور الفيديو
وغير خاصية Image للمديا بالصورة اللي انت عايزها
لا توجد image في خصائص الاداة مع انني كنت اتمنى ان يكون هناك صورة خاصة بالمشروع
وقمت بأسنبدال
أداة الميديا بلاير بأداة PictureBox لعرض الفيديو .
وذلك باستخدام دالة API المسماة mciSendString وهي دالة لإرسال أوامر نصية
الدالــــــة :
رموز PHP:
Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Integer, ByVal hwndCallback As Integer) As Integer
- نضع الدالة أعلاه في بداية الفورم .
* أولاً قمت بإنشاء مشروع جديد للتجربة .
* ثانياً : أضف للفورم :
- أداة PictureBox سمها (Pic) .
- عدد اثنين أداة TrakBar واحدة للصوت سمها (TB1) ، والأخرى لشريط تقدم الفيديو سمها (TB2) ،
- أداة Timer بـ Interval بقيمة 1000 (ثانية) .
- زر أمر سمه (Button1) .
- أداة Label سمها (Label1) .
* نضع المتغيرات أدناه أعلى الفورم :
رموز PHP:
Dim filename As String
Dim retVal As Integer
Dim File As String
* في حدث تحميل النموذج FormLoad نضع الكود التالي :
رموز PHP:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
TB1.Maximum = 1000
TB1.Value = (TB1.Maximum / 2)
End Sub
- وذلك لكي نعطي أداة الصوت القيمة القصوى للصوت وهي 1000، وكذلك نضع قيمته الافتراضية في الوسط بقسمة القيمة القصوى علي 2 .
* في حدث الضغط علي الزر ضع الكود التالي :
رموز PHP:
Dim OpenFileDialog1 As New OpenFileDialog
OpenFileDialog1.Filter = "Audio Video Files (*.wav,*.mp3,*.mpeg,*.wmv,*.avi)|*.wav;*.mp3;*.mpe g;*.wmv;*.avi"
If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then 'If the OpenFileDialog is OK then it will do the following statements
filename = OpenFileDialog1.FileName.ToString 'Sets the filename
filename = Chr(34) & filename & Chr(34) 'Quotes around
retVal = mciSendString("close movie", 0, 0, 0) 'closes it
retVal = mciSendString("open " & filename & " type mpegvideo alias movie parent " & Pic.Handle.ToInt32 & " style child", 0, 0, 0) 'opens it to the movie window
File = OpenFileDialog1.FileName 'Sets the file
retVal = mciSendString("setaudio movie volume to " & TB1.Value, 0, 0, 0) 'gets volume
TB2.Maximum = GetVideoLength()
' Play video or suond
Play()
End If
* إجراء تشغيل الفيديو أو الصوت :
رموز PHP:
Private Sub Play()
On Error Resume Next
Timer1.Enabled = True
Dim leftpos, Top, Width, Height As Integer 'Declareations for the size and pos.
Width = Pic.Size.Width 'changes the width
Height = Pic.Size.Height 'changes the height...
retVal = mciSendString("resume movie", 0, 0, 0) 'i chose resume instead of play because it will play when paused...
retVal = mciSendString("put movie window at " & leftpos & " " & Top & " " & Width & " " & Height, 0, 0, 0) 'alignes the movie window...
Top = 0 'more aligning
leftpos = 0 more...
End Sub
* دالة معرفة طول الفيديو (Time) :
رموز PHP:
Public Function GetVideoLength() As Long
Get the length of the movie in milliseconds to Long
Dim Data As String = Space(128)
Dim VidLen As String = Nothing
retVal = mciSendString("set movie time format ms", 0, 0, 0)
retVal = mciSendString("status movie length", Data, 128, 0)
GetVideoLength = CLng(Data)
End Function
* دالة معرفة الموضع الحالي للفيديو أو الصوت :
رموز PHP:
Public Function GetVideoPosition() As Long
Get the position of the movie in milliseconds
Dim Data As String = Space(128)
retVal = mciSendString("set movie time format ms", 0, 0, 0)
retVal = mciSendString("status movie position wait", Data, 128, 0)
GetVideoPosition = Val(Data)
End Function
* إضغط دبل كليك علي أداة TB1 وضع الكود التالي وذلك للتحكم في الصوت :
رموز PHP:
Private Sub TB1_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TB1.Scroll
On Error Resume Next
retVal = mciSendString("setaudio movie volume to " & TB1.Value, 0, 0, 0) gets volume
End Sub
* في التايمر Timer نضع الكود أدناه وذلك لنرى تقدم شريط التمرير والزمن الخاص بالفيديو أو الصوت :
رموز PHP:
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
On Error Resume Next
Dim pos As Long = GetVideoPosition()
TB2.Value = pos
Dim ts As TimeSpan = TimeSpan.FromMilliseconds(CDbl(GetVideoPosition()))
If ts.Hours <= 0 Then
Label1.Text = ts.Minutes.ToString("00") & ":" & ts.Seconds.ToString("00")
Else
Label1.Text = ts.Hours.ToString("00") & ":" & ts.Minutes.ToString("00") & ":" & ts.Seconds.ToString("00")
End If
If pos = GetVideoLength() Then
TB2.Value = 0
Timer1.Enabled = False
End If
End Sub
* نضغط دبل كليك علي أداة شريط تقدم الفيديو TB2 ونضع الكود التالي :
رموز PHP:
Private Sub TB2_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TB2.Scroll
On Error Resume Next
setPositionTo(TB2.Value)
End Sub
- هذه الدالة setPositionTo تقوم بتحريك وعرض الفيديو أو الصوت من المكان الذي حددته في أداة شريط التقدم .
* دالة تغيير موضع الفيديو أو الصوت :
رموز PHP:
Public Function setPositionTo(ByVal Second As Long) On Error Resume Next Sets the position of the movie to play retVal = mciSendString("play movie from " & Second, 0, 0, 0) End Function
ولكن على مايبدوا ان الاكواد يوجد بها بعض الخطاء
لذلك اتمنى منكم مساعدتي
لم اتكمن من ارفاق صور بسبب العجلة لكن غدا سوف لرفق لكم المشروع كاملا
انا اعمل على microsoft visual studio 2010
لكم مني كل الاحترام والتقدير
وشكرا