• 0
غزوان خليل

بخصوص مشغل صوتيات وفيديو

سؤال

بسم الله الرحمن الرحيم

السلام عليكم ورحمة الله وبركاته

انا ابرمج مشروع مشل صوت وفيديو ( جميع الصيغ ) التي اعرفها

ولقد ببعض الاضافات والتديلات لكن واجهتني بعض المشاكل حاولت حلها

بأكثر من طريقة لكن لاجدوى

لقد وضعت لكم الاقتباسات للخطوات التي قمت بها

اولا لقد اضفت اداة

قمت بحذف كود اضافة الفلاش وليس الاداة فقط الكود

وقمت باضافة الكود

اقتباس:

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

لكم مني كل الاحترام والتقدير

وشكرا

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

1 إجابات على هذا السؤال .

  • 0

انا اسف لتأخري في رفع المشروع لكن كنت اجرب كافة الاحتمالات

ستجدون ان المشروع كما هو لانني قمت بتجريب على نسخة منه كي لايخرب

على اية حال هذا هو المشروع

sham player

تم تعديل بواسطه غزوان خليل
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .