تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
تشغيل الصوت بعيدا عن ميديا بلاير
#1
السلام عليكم ورحمة الله وبركاته.
إخوتى هل هناك طريقة لتشغيل ملف صوتى mp3 بدون ميديا بلاير ؟
بحثت ولم أجد وأكيد لم أبحث بطريقة جيدة
الرد }}}
تم الشكر بواسطة: ابراهيم ايبو , asemshahen5
#2
أتمني أن يكون هذا ما تطلبه
Imports System.Media
Public Class Form1
Dim wmp As New WMPLib.WindowsMediaPlayer
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click


wmp.URL = "mp3file\myfile.mp3"
wmp.controls.play()
End Sub


End Class
الرد }}}
تم الشكر بواسطة: 3booody , ابو روضة , ابراهيم ايبو , asemshahen5
#3
عليكم السلام ورحمة الله وبركاته

للأمانة العلمية هذا الكود منذ زمن بعيد كان لشخص بالمنتدى ولا اتذكر اسم الاخ وانا قمت بالتعديل عليه بحيث اضفت احداث للفئة

كود :
Public Class MediaPlayer
   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
   Private Declare Function mciGetErrorString Lib "winmm.dll" Alias "mciGetErrorStringA" (ByVal dwError As Integer, ByVal lpstrBuffer As String, ByVal uLength As Integer) As Integer

   Public Event MediaOpened(ByVal sender As System.Object, ByVal e As System.EventArgs)
   Public Event MediaClosed(ByVal sender As System.Object, ByVal e As System.EventArgs)
   Public Event MediaPosition(ByVal sender As Object, ByVal e As Long)

   Dim WithEvents tim As New Timer With {.Interval = 1}

   Private Shared ObjectCount As Integer = 0
   Private retVal As Integer = 0
   Private returnData As String = Space(128)
   Private errorString As String = Space(128)
   Private errorSuccess As Boolean

   '
   Sub New()
       ObjectCount = ObjectCount + 1
       mFileAlias = "SND" & Hex(Now.Ticks) & Hex(ObjectCount)
   End Sub

   Sub New(ByVal pFileName As String)
       Me.New()
       Me.FileName = pFileName
   End Sub


   Private mFileAlias As String
   ReadOnly Property FileAlias() As String
       Get
           Return mFileAlias
       End Get
   End Property

   Private mFileName As String
   Property FileName() As String
       Get
           Return mFileName
       End Get
       Set(ByVal value As String)
           Me.Stop()
           Me.close()
           mFileName = value
       End Set
   End Property

   Private mLength As Long = 0
   Public ReadOnly Property Length() As Long
       Get
           Return mLength
       End Get
   End Property

   Public Property Position() As Long
       Get
           retVal = mciSendString("status " & Me.FileAlias & " position", returnData, 128, 0)
           Return Val(returnData)
       End Get
       Set(ByVal value As Long)
           If Me.IsPlaying() Then
               retVal = mciSendString("play " & Me.FileAlias & " from " & value.ToString, 0, 0, 0)
           Else
               retVal = mciSendString("seek " & Me.FileAlias & " to " & value.ToString, 0, 0, 0)
           End If
       End Set
   End Property


   Public ReadOnly Property IsPlaying() As Boolean
       Get
           retVal = mciSendString("status " & Me.FileAlias & " mode", returnData, 128, 0)
           Return returnData.StartsWith("playing")
       End Get
   End Property


   Private mVolume As Byte = 100
   Public Property volume() As Byte
       Get
           Return mVolume
       End Get
       Set(ByVal value As Byte)
           If value > 100 Then
               value = 100
           End If
           mVolume = value

           Dim vol As Integer = (Me.volume * 10)
           retVal = mciSendString("setaudio " & Me.FileAlias & " volume to " & vol.ToString, 0, 0, 0)

       End Set
   End Property

   Private mIsOpen As Boolean = False
   Sub open(ByVal sFileName As String)
       Me.FileName = sFileName
       Me.open()
   End Sub

   Public ScreenHandel As Int32 = 0

   Sub open()
       Me.close()
       If ScreenHandel <= 0 Then
           retVal = mciSendString("open """ & Me.FileName & """ type mpegvideo alias " & Me.FileAlias, 0, 0, 0)
       Else
           retVal = mciSendString("open """ & Me.FileName & """ type mpegvideo alias " & Me.FileAlias & " parent " & ScreenHandel.ToString & " style " & "child" & " ", 0, 0, 0)
       End If

       retVal = mciSendString("set " & Me.FileAlias & " time format ms", 0, 0, 0)

       retVal = mciSendString("status " & Me.FileAlias & " length", returnData, 128, 0)
       mLength = Val(returnData)
       mIsOpen = True
       Me.volume = Me.volume
       RaiseEvent MediaOpened(Me, New System.EventArgs)
       tim.Start()
   End Sub

   Sub Play(Optional ByVal repate As Boolean = False)
       If repate = True Then
           Me.Play("repeat")
       Else
           Play("")
       End If
   End Sub


   Sub Play(ByVal pFileName As String, ByVal pRepate As Boolean)
       Me.FileName = pFileName
       Me.Play(pRepate)
   End Sub

   Sub Play(ByVal pCommand As String)
       Dim Cmd As String = "play " & Me.FileAlias & " " & pCommand
       If mIsOpen = False Then
           Me.close()
           Me.open()
       End If
       retVal = mciSendString(Cmd, 0, 0, 0)
   End Sub


   Sub Pause()
       retVal = mciSendString("pause " & Me.FileAlias, 0, 0, 0)
   End Sub


   Sub [resume]()
       retVal = mciSendString("resume " & Me.FileAlias, 0, 0, 0)
   End Sub

   Sub [Stop]()
       retVal = mciSendString("stop " & Me.FileAlias, 0, 0, 0)
   End Sub


   Sub close()
       Me.Stop()
       retVal = mciSendString("close " & Me.FileAlias, 0, 0, 0)
       '----------------------------------
       If mIsOpen = True Then
           RaiseEvent MediaClosed(Me, New System.EventArgs)
           tim.Stop()
       End If
       '----------------------------------
       mIsOpen = False
       mLength = 0
       '--------------------------------------
   End Sub

   Private Sub tim_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles tim.Tick
       RaiseEvent MediaPosition(Me, Me.Position)
   End Sub
End Class

واذا واجهت مشكلة فيه عندي مشروع متكامل عملته عليه
بالتوفيق الك اخي
الرد }}}
تم الشكر بواسطة: ابو روضة , ابراهيم ايبو
#4
ملحوظة: لتطبيق هذا الكود ضع مجلد باسم mp3file داخل مجلد البرنامجDebug وضع داخله أي ملف أم بي 3 وعدل myfile.mp3 إلى اسم الملف الذي تريد تشغيله
الرد }}}
تم الشكر بواسطة: ابو روضة , ابراهيم ايبو
#5
(19-10-19, 01:11 AM)معتز حسن كتب : أتمني أن يكون هذا ما تطلبه
Imports System.Media
Public Class Form1
   Dim wmp As New WMPLib.WindowsMediaPlayer
   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click


       wmp.URL = "mp3file\myfile.mp3"
       wmp.controls.play()
   End Sub


End Class


انا أتكلم لو الجهاز اصلا لا يوجد به ميديا بلاير لآن جهازى لا يوجد به هذا المشغل
وبالتالى ظهر هذا الخطأ الذى من أجله طلبت طلبى هذا



(19-10-19, 01:14 AM)3booody كتب : عليكم السلام ورحمة الله وبركاته

للأمانة العلمية هذا الكود منذ زمن بعيد كان لشخص بالمنتدى ولا اتذكر اسم الاخ وانا قمت بالتعديل عليه بحيث اضفت احداث للفئة

كود :
Public Class MediaPlayer
   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
   Private Declare Function mciGetErrorString Lib "winmm.dll" Alias "mciGetErrorStringA" (ByVal dwError As Integer, ByVal lpstrBuffer As String, ByVal uLength As Integer) As Integer

   Public Event MediaOpened(ByVal sender As System.Object, ByVal e As System.EventArgs)
   Public Event MediaClosed(ByVal sender As System.Object, ByVal e As System.EventArgs)
   Public Event MediaPosition(ByVal sender As Object, ByVal e As Long)

   Dim WithEvents tim As New Timer With {.Interval = 1}

   Private Shared ObjectCount As Integer = 0
   Private retVal As Integer = 0
   Private returnData As String = Space(128)
   Private errorString As String = Space(128)
   Private errorSuccess As Boolean

   '
   Sub New()
       ObjectCount = ObjectCount + 1
       mFileAlias = "SND" & Hex(Now.Ticks) & Hex(ObjectCount)
   End Sub

   Sub New(ByVal pFileName As String)
       Me.New()
       Me.FileName = pFileName
   End Sub


   Private mFileAlias As String
   ReadOnly Property FileAlias() As String
       Get
           Return mFileAlias
       End Get
   End Property

   Private mFileName As String
   Property FileName() As String
       Get
           Return mFileName
       End Get
       Set(ByVal value As String)
           Me.Stop()
           Me.close()
           mFileName = value
       End Set
   End Property

   Private mLength As Long = 0
   Public ReadOnly Property Length() As Long
       Get
           Return mLength
       End Get
   End Property

   Public Property Position() As Long
       Get
           retVal = mciSendString("status " & Me.FileAlias & " position", returnData, 128, 0)
           Return Val(returnData)
       End Get
       Set(ByVal value As Long)
           If Me.IsPlaying() Then
               retVal = mciSendString("play " & Me.FileAlias & " from " & value.ToString, 0, 0, 0)
           Else
               retVal = mciSendString("seek " & Me.FileAlias & " to " & value.ToString, 0, 0, 0)
           End If
       End Set
   End Property


   Public ReadOnly Property IsPlaying() As Boolean
       Get
           retVal = mciSendString("status " & Me.FileAlias & " mode", returnData, 128, 0)
           Return returnData.StartsWith("playing")
       End Get
   End Property


   Private mVolume As Byte = 100
   Public Property volume() As Byte
       Get
           Return mVolume
       End Get
       Set(ByVal value As Byte)
           If value > 100 Then
               value = 100
           End If
           mVolume = value

           Dim vol As Integer = (Me.volume * 10)
           retVal = mciSendString("setaudio " & Me.FileAlias & " volume to " & vol.ToString, 0, 0, 0)

       End Set
   End Property

   Private mIsOpen As Boolean = False
   Sub open(ByVal sFileName As String)
       Me.FileName = sFileName
       Me.open()
   End Sub

   Public ScreenHandel As Int32 = 0

   Sub open()
       Me.close()
       If ScreenHandel <= 0 Then
           retVal = mciSendString("open """ & Me.FileName & """ type mpegvideo alias " & Me.FileAlias, 0, 0, 0)
       Else
           retVal = mciSendString("open """ & Me.FileName & """ type mpegvideo alias " & Me.FileAlias & " parent " & ScreenHandel.ToString & " style " & "child" & " ", 0, 0, 0)
       End If

       retVal = mciSendString("set " & Me.FileAlias & " time format ms", 0, 0, 0)

       retVal = mciSendString("status " & Me.FileAlias & " length", returnData, 128, 0)
       mLength = Val(returnData)
       mIsOpen = True
       Me.volume = Me.volume
       RaiseEvent MediaOpened(Me, New System.EventArgs)
       tim.Start()
   End Sub

   Sub Play(Optional ByVal repate As Boolean = False)
       If repate = True Then
           Me.Play("repeat")
       Else
           Play("")
       End If
   End Sub


   Sub Play(ByVal pFileName As String, ByVal pRepate As Boolean)
       Me.FileName = pFileName
       Me.Play(pRepate)
   End Sub

   Sub Play(ByVal pCommand As String)
       Dim Cmd As String = "play " & Me.FileAlias & " " & pCommand
       If mIsOpen = False Then
           Me.close()
           Me.open()
       End If
       retVal = mciSendString(Cmd, 0, 0, 0)
   End Sub


   Sub Pause()
       retVal = mciSendString("pause " & Me.FileAlias, 0, 0, 0)
   End Sub


   Sub [resume]()
       retVal = mciSendString("resume " & Me.FileAlias, 0, 0, 0)
   End Sub

   Sub [Stop]()
       retVal = mciSendString("stop " & Me.FileAlias, 0, 0, 0)
   End Sub


   Sub close()
       Me.Stop()
       retVal = mciSendString("close " & Me.FileAlias, 0, 0, 0)
       '----------------------------------
       If mIsOpen = True Then
           RaiseEvent MediaClosed(Me, New System.EventArgs)
           tim.Stop()
       End If
       '----------------------------------
       mIsOpen = False
       mLength = 0
       '--------------------------------------
   End Sub

   Private Sub tim_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles tim.Tick
       RaiseEvent MediaPosition(Me, Me.Position)
   End Sub
End Class

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

جزاك الله كل خير أخى لكن الكود كبير وغير مفهوم حقيقة فلو تكرمت ممكن التكرم
بماذا أفعل به أو لو لديك مشروع ارسله لى
الرد }}}
تم الشكر بواسطة: ابراهيم ايبو
#6
أعذرني اخي لاني لم ارفق لك المشروع مباشرة والسبب لان الاكواد كثيرة به جدآ وغير مفهومه كنت احاول اطوره في السابق لكن تركته على حاله
المهم المشروع راح ارفعه الك حاول تفهمه وتصمم مشروعك الخاص من خلاله افضل لك
به خصائص مثلآ:
ProgressBar من تطويري
تشغيل عن طريق السحب والافلات للملف
حفظ اعدادات البرنامج
تقريبا جمعت امور راح اسميها خرابيط ههههه لان كنت اطمح اعمله مشغل كامل
بالتوفيق الك اخي

قد نسيت شيء وهو ان الكود السابق في المشاركة راح تلاحظه غير موجود بالمشروع لان عملته مكتبه dll مع المشروع


الملفات المرفقة
.zip   Abooody Player.zip (الحجم : 344.55 ك ب / التحميلات : 25)
الرد }}}
تم الشكر بواسطة: ابراهيم ايبو , asemshahen5
#7
(19-10-19, 01:48 AM)3booody كتب : أعذرني اخي لاني لم ارفق لك المشروع مباشرة والسبب لان الاكواد كثيرة به جدآ وغير مفهومه كنت احاول اطوره في السابق لكن تركته على حاله
المهم المشروع راح ارفعه الك حاول تفهمه وتصمم مشروعك الخاص من خلاله افضل لك
به خصائص مثلآ:
ProgressBar من تطويري
تشغيل عن طريق السحب والافلات للملف
حفظ اعدادات البرنامج
تقريبا جمعت امور راح اسميها خرابيط ههههه لان كنت اطمح اعمله مشغل كامل
بالتوفيق الك اخي

قد نسيت شيء وهو ان الكود السابق في المشاركة راح تلاحظه غير موجود بالمشروع لان عملته مكتبه dll مع المشروع

بارك الله فيك أخى فعلا هذا يعمل جيدا...
سؤال لو سمحت:
ينفع اشغل ملف الصوت من رابط ملف مرفوع على االنترنت بدلا من الجهاز ؟
الرد }}}
تم الشكر بواسطة: ابراهيم ايبو , asemshahen5
#8
هل لديك رابط لملف صوت لكي اجرب الكود عليه؟لان ليس لدي
الرد }}}
تم الشكر بواسطة: ابراهيم ايبو , asemshahen5
#9
(19-10-19, 02:16 AM)3booody كتب : هل لديك رابط لملف صوت  لكي اجرب الكود عليه؟لان ليس لدي

اتفضل اخى
http://www.asmreekasounds.com/upfiles/up...16aaca.mp3
الرد }}}
تم الشكر بواسطة: ابراهيم ايبو , asemshahen5
#10
(19-10-19, 01:20 AM)ابو روضة كتب :
(19-10-19, 01:11 AM)معتز حسن كتب : أتمني أن يكون هذا ما تطلبه
Imports System.Media
Public Class Form1
   Dim wmp As New WMPLib.WindowsMediaPlayer
   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click


       wmp.URL = "mp3file\myfile.mp3"
       wmp.controls.play()
   End Sub


End Class

أخي أبوروضة الكود أعلاه يعمل بصورة جيدة بدون الميديا بلير.... ولكن لتفادي هذا الخطأ قم بإضافة أداة windows media player  ثم قم بحذفها مرة أخرى وسيعمل ملف الام بي 3 مباشرة عند الضغط على الزر
الرد }}}
تم الشكر بواسطة: ابراهيم ايبو , asemshahen5


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [سؤال] منع الوصول أو تشغيل الريجيسترى dr.programming 4 401 12-06-25, 12:24 AM
آخر رد: أبو خالد الشكري
  [سؤال] تغيير الفورم الرئيسي عند تشغيل البرنامج في Visual Studio مع .NET 8؟ silverlord 2 656 09-03-25, 03:52 AM
آخر رد: silverlord
  مشكلة في كود الصوت fireswored1 3 298 10-01-25, 12:26 PM
آخر رد: أبو خالد الشكري
  [VB.NET] كود الصوت لمشغل MPV PLAYER attiamoh6 4 384 24-11-24, 04:00 AM
آخر رد: rdxdz
  [مثال] تشغيل البرنامج كمسؤول alswade 2 465 30-10-24, 07:08 PM
آخر رد: aliday03
Exclamation [VB.NET] ممكن كود تشغيل ملف صوت MP3 الورد الصناعي 10 940 20-10-24, 03:08 PM
آخر رد: salamandal
Rainbow تشغيل او إيقاف نظام الإنترنت مؤقتا YousefOkasha 5 2,508 16-10-24, 11:57 AM
آخر رد: بوحمد
  كيف يمكن اضافة عناصر للكومبوبوكس اثناء تشغيل البرنامج عن طريق المستخدم haithammoftah 3 2,164 30-09-24, 12:52 AM
آخر رد: asmarsou
Lightbulb [سؤال] مشكلة تظهر عند بدء تشغيل البرنامج أبو خالد الشكري 3 495 19-08-24, 05:16 PM
آخر رد: Zuhare
  ماهو كود ب .net يقوم باعادة تشغيل مستكشف ملفات الووندوز windows explorer bassant 6 753 21-07-24, 01:46 PM
آخر رد: bassant

التنقل السريع :


يقوم بقرائة الموضوع: