تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] تشغيل ملفات صوتية في my.computer
#1
السلام عليكم يا شباب :
هل يمكن تشغيل ملفات صوتية ما عدا wav ، عن طريق
my.computer.Audio.play
ملفات بصيعة mp3 .. wma .. وغيرها
علما بأن تجربتي ومعرفتي المحدودة لم تخلض إلى نتيجة مؤكدة بالموضوع
الرد }}}
تم الشكر بواسطة:
#2
لملفات الـ mp3 128 bit rate
اضف الكلاس AudioFile وضع به 
كود :
Public Class AudioFile
   Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Int32, ByVal hwndCallback As Int32) As Int32
   Public Sub New(ByVal location As String)
       Me.Filename = location
   End Sub
   Public Sub Play()
       If _filename = "" Or Filename.Length <= 4 Then Exit Sub
       Select Case Right(Filename, 3).ToLower
           Case "mp3"
               mciSendString("open """ & _filename & """ type mpegvideo alias audiofile", Nothing, 0, IntPtr.Zero)
               Dim playCommand As String = "play audiofile from 0"
               If _wait = True Then playCommand += " wait"
               mciSendString(playCommand, Nothing, 0, IntPtr.Zero)
           Case "wav"
               mciSendString("open """ & _filename & """ type waveaudio alias audiofile", Nothing, 0, IntPtr.Zero)
               mciSendString("play audiofile from 0", Nothing, 0, IntPtr.Zero)
           Case "mid", "idi"
               mciSendString("stop midi", "", 0, 0)
               mciSendString("close midi", "", 0, 0)
               mciSendString("open sequencer!" & _filename & " alias midi", "", 0, 0)
               mciSendString("play midi", "", 0, 0)
           Case Else
               Throw New Exception("File type not supported.")
               Call Close()
       End Select
       IsPaused = False
   End Sub
   Public Sub Pause()
       mciSendString("pause audiofile", Nothing, 0, IntPtr.Zero)
       IsPaused = True
   End Sub
   Public Sub [Resume]()
       mciSendString("resume audiofile", Nothing, 0, IntPtr.Zero)
       IsPaused = False
   End Sub
   Public Sub [Stop]()
       mciSendString("stop audiofile", Nothing, 0, IntPtr.Zero)
   End Sub
   Public Sub Close()
       mciSendString("close audiofile", Nothing, 0, IntPtr.Zero)
   End Sub
   Private _wait As Boolean = False
   Public Property Wait() As Boolean
       Get
           Return _wait
       End Get
       Set(ByVal value As Boolean)
           _wait = value
       End Set
   End Property
   ReadOnly Property Milleseconds() As Integer
       Get
           Dim buf As String = Space(255)
           mciSendString("set audiofile time format milliseconds", Nothing, 0, IntPtr.Zero)
           mciSendString("status audiofile length", buf, 255, IntPtr.Zero)
           buf = Replace(buf, Chr(0), "") 'Get rid of the nulls, they muck things up
           If buf = "" Then
               Return 0
           Else
               Return CInt(buf)
           End If
       End Get
   End Property
   ReadOnly Property Status() As String
       Get
           Dim buf As String = Space(255)
           mciSendString("status audiofile mode", buf, 255, IntPtr.Zero)
           buf = Replace(buf, Chr(0), "") 'Get rid of the nulls, they muck things up
           Return buf
       End Get
   End Property
   ReadOnly Property FileSize() As Integer
       Get
           Try
               Return My.Computer.FileSystem.GetFileInfo(_filename).Length
           Catch ex As Exception
               Return 0
           End Try
       End Get
   End Property
   ReadOnly Property Channels() As Integer
       Get
           Dim buf As String = Space(255)
           mciSendString("status audiofile channels", buf, 255, IntPtr.Zero)
           If IsNumeric(buf) = True Then
               Return CInt(buf)
           Else
               Return -1
           End If
       End Get
   End Property
   ReadOnly Property Debug() As String
       Get
           Dim buf As String = Space(255)
           mciSendString("status audiofile channels", buf, 255, IntPtr.Zero)
           Return Str(buf)
       End Get
   End Property
   Private _isPaused As Boolean = False
   Public Property IsPaused() As Boolean
       Get
           Return _isPaused
       End Get
       Set(ByVal value As Boolean)
           _isPaused = value
       End Set
   End Property
   Private _filename As String
   Public Property Filename() As String
       Get
           Return _filename
       End Get
       Set(ByVal value As String)
           If My.Computer.FileSystem.FileExists(value) = False Then
               Throw New System.IO.FileNotFoundException
               Exit Property
           End If
           _filename = value
       End Set
   End Property
End Class


 وفي زر فتح الملف ضع
كود :
Dim x As New OpenFileDialog
       x.Filter = "|*.mp3"
       If x.ShowDialog = Windows.Forms.DialogResult.OK Then

           Dim audio As New AudioFile(x.FileName)
           audio.Close()
           audio.Play()
       End If
الرد }}}
تم الشكر بواسطة: محمود رغمان
#3
شكرا أخي HASAN6.0 على هذا الجهد
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [سؤال] منع الوصول أو تشغيل الريجيسترى dr.programming 4 393 12-06-25, 12:24 AM
آخر رد: أبو خالد الشكري
  [سؤال] تغيير الفورم الرئيسي عند تشغيل البرنامج في Visual Studio مع .NET 8؟ silverlord 2 643 09-03-25, 03:52 AM
آخر رد: silverlord
  طريقة جلب نوع ملفات معينة heem1986 3 467 31-12-24, 11:32 PM
آخر رد: aljzazy
  [مثال] تشغيل البرنامج كمسؤول alswade 2 449 30-10-24, 07:08 PM
آخر رد: aliday03
  [VB.NET] عمل شكل موجة صوتية مع المايك abo ragab 1 234 26-10-24, 12:36 AM
آخر رد: abo ragab
Exclamation [VB.NET] ممكن كود تشغيل ملف صوت MP3 الورد الصناعي 10 901 20-10-24, 03:08 PM
آخر رد: salamandal
Rainbow تشغيل او إيقاف نظام الإنترنت مؤقتا YousefOkasha 5 2,485 16-10-24, 11:57 AM
آخر رد: بوحمد
  [VB.NET] اضافة ملاحظة صوتية abo ragab 2 446 15-10-24, 10:14 PM
آخر رد: abo ragab
  كيف يمكن اضافة عناصر للكومبوبوكس اثناء تشغيل البرنامج عن طريق المستخدم haithammoftah 3 2,149 30-09-24, 12:52 AM
آخر رد: asmarsou
  كيفيه التعامل مع ملفات الدروب بوكس عن طريق api ackore 3 450 22-08-24, 06:13 AM
آخر رد: ackore

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


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