تقييم الموضوع :
  • 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 على هذا الجهد
الرد }}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
Thumbs Up كيفية تشغيل وإغلاق الادوات الذكية لويندوز 7 عن طريق الكود رمضان محمد 6 898 11-10-17, 08:48 PM
آخر رد: رمضان محمد
  [VB.NET] عمل شاشة مؤقته تظهر عند تشغيل الفورم hglogtd 2 41 11-10-17, 07:36 PM
آخر رد: hglogtd
  غلق الملفات قيد تشغيل قبل الحذف محمود صالح 3 88 24-09-17, 03:10 PM
آخر رد: wale90
  [VB.NET] ما سبب هذه الرسالة عند تشغيل البرنامج D-Z 7 118 23-09-17, 10:36 PM
آخر رد: D-Z
  تعريف ملفات الرسورس بالكلاس bidaya 2 74 19-09-17, 03:30 PM
آخر رد: bidaya
  كيفية نسخ ملفات في مجلد الـ System32 أو أي مجلد خاص بالوندوز بواسطة ملف الـ Setup نبيل فتحى 5 132 09-09-17, 01:51 AM
آخر رد: نبيل فتحى
  مساعده فى حماية او تشفير ملفات البرنامج نبيل فتحى 2 131 06-09-17, 08:16 AM
آخر رد: نبيل فتحى
Music [كود] هل لدى احد فكره عن كيفيه ارسال ملفات صوتيه عبر الشبكة badrkamel 1 100 23-08-17, 02:23 AM
آخر رد: zinom
  [سؤال] تشغيل مادة صوتية من خلال DataGridView ابو روضة 2 200 17-08-17, 03:40 PM
آخر رد: ابو روضة
  كيفية تشغيل برنامج من Resources e-coder 6 218 16-08-17, 05:59 AM
آخر رد: e-coder

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


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم