PDA

View Full Version : پخش صدا



gh_fereydonpoor
پنج شنبه 21 اسفند 1382, 18:20 عصر
سلام به همه دوستان
آقا چطوری میشه که یه فایل Wav‌رو توی VB.Net پخش کرد
من بیچاره شدم بابا
مرسی ممنون
یا علی.

sh
پنج شنبه 21 اسفند 1382, 19:08 عصر
سلام

اول این کد رو در قسمت بالای کلاس فرم بنویس

Imports System.Runtime.InteropServices
Imports DxVBLibA

بعد در زیر Windows Form Designer generated code بنویس


Dim dx As New DirectX8()
Dim ds As DirectSound8
Dim dsBuffer As DxVBLibA.DirectSoundSecondaryBuffer8
Dim bufferDesc As New DSBUFFERDESC()
Dim filename As String

Private Sub intilizesndbuffer(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
bufferDesc.lFlags = DxVBLibA.CONST_DSBCAPSFLAGS.DSBCAPS_STATIC Or DxVBLibA.CONST_DSBCAPSFLAGS.DSBCAPS_STICKYFOCUS
ds = dx.DirectSoundCreate("")
ds.SetCooperativeLevel(Me.Handle.ToInt32(), CONST_DSSCLFLAGS.DSSCL_NORMAL)
bufferDesc.lFlags = DxVBLibA.CONST_DSBCAPSFLAGS.DSBCAPS_CTRL3D Or DxVBLibA.CONST_DSBCAPSFLAGS.DSBCAPS_CTRLVOLUME
ds = dx.DirectSoundCreate(filename) ' very important for setting volume
End Sub

بعد یه دکمه بذار روی فرم و در رویداد کلیک اون بنویس


Dim int1 As Long
int1 = 5
filename = "tada.wav"
bufferDesc.lFlags = DxVBLibA.CONST_DSBCAPSFLAGS.DSBCAPS_STATIC Or DxVBLibA.CONST_DSBCAPSFLAGS.DSBCAPS_STICKYFOCUS
ds = dx.DirectSoundCreate("")
ds.SetCooperativeLevel(Me.Handle.ToInt32(), CONST_DSSCLFLAGS.DSSCL_NORMAL)
'bufferDesc.lFlags = DxVBLibA.CONST_DSBCAPSFLAGS.DSBCAPS_CTRL3D Or DxVBLibA.CONST_DSBCAPSFLAGS.DSBCAPS_CTRLVOLUME

bufferDesc.lFlags = CONST_DSBCAPSFLAGS.DSBCAPS_CTRLPAN Or CONST_DSBCAPSFLAGS.DSBCAPS_CTRLVOLUME Or CONST_DSBCAPSFLAGS.DSBCAPS_CTRLFREQUENCY
dsBuffer = ds.CreateSoundBufferFromFile(filename, bufferDesc)
dsBuffer.SetVolume(TextBox2.Text)
dsBuffer.Play(DxVBLibA.CONST_DSBPLAYFLAGS.DSBPLAY_ DEFAULT)

بعد یک دکمه دیگه

TextBox1.Text = filename
dsBuffer.Stop()
bufferDesc.lFlags = CONST_DSBCAPSFLAGS.DSBCAPS_CTRLPAN Or CONST_DSBCAPSFLAGS.DSBCAPS_CTRLVOLUME Or CONST_DSBCAPSFLAGS.DSBCAPS_CTRLFREQUENCY


البته کنترلهای دیگه هم از قبیل تکست باکس لازمه که روی فرم بذار توی کد دقت کنی متوجه میشی

Voldemort
پنج شنبه 21 اسفند 1382, 20:32 عصر
http://www.freevbcode.com/ShowCode.asp?ID=4884

gh_fereydonpoor
پنج شنبه 21 اسفند 1382, 21:04 عصر
سلام
اوه اوه
چه کردی
بابا من یه Sample دیدم 4-5 خط بیشتر نبود با API های قدیمی VB6.0 بود
واسط می نویسمش
مرسی
یا علی.
صبر کن این دوستمون لینکشو داده
مرسی

Voldemort
پنج شنبه 21 اسفند 1382, 22:24 عصر
کدی که دوستمون SH نوشتن با استفاده از Direct Sound 8 است. به همین خاطره که کمی طولانی شده

gh_fereydonpoor
شنبه 01 فروردین 1383, 18:26 عصر
سلام
آقا از همگی ممنون
مرسی
یا علی