Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: DirectSound Добавлено: 02.11.09 21:56  

Автор вопроса:  AWР | Web-сайт: bomber.h17.ru | ICQ: 345685652 
Пытаюсь захватить звук. При строке dim cdc as new microsoft.directX.directSound.captureDevicesCollection пишут библиотека пытается выполнить управляемый код под блокировкой OS LOADER. Запуск управляемого кожа в пределах функции dllMain или функции инициализации образа может вызвать зависание приложения. Как избавиться от ошибки?

Ответить

  Ответы Всего ответов: 7  

Номер ответа: 1
Автор ответа:
 DesT



ICQ: 376533105 

Вопросов: 1
Ответов: 24
 Профиль | | #1 Добавлено: 03.11.09 01:14
у тебя какая операционка? севан? =)

Ответить

Номер ответа: 2
Автор ответа:
 AWР



ICQ: 345685652 

Вопросов: 38
Ответов: 106
 Web-сайт: bomber.h17.ru
 Профиль | | #2
Добавлено: 03.11.09 10:41
WindowsXP SP3

Ответить

Номер ответа: 3
Автор ответа:
 AWР



ICQ: 345685652 

Вопросов: 38
Ответов: 106
 Web-сайт: bomber.h17.ru
 Профиль | | #3
Добавлено: 03.11.09 13:35
Или как получить guid для dim capt as new microsoft.directX.directSound.capture(guid)

Ответить

Номер ответа: 4
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #4
Добавлено: 03.11.09 17:46
Не вызывать управляемый код в пределах DllMain.

Ответить

Номер ответа: 5
Автор ответа:
 AWР



ICQ: 345685652 

Вопросов: 38
Ответов: 106
 Web-сайт: bomber.h17.ru
 Профиль | | #5
Добавлено: 03.11.09 18:44
эту ошибку вроде можно проигнорировать.

1я кнопка начинает получать звук, вторая- стоп и воспроизвести этот захваченный звук. Но ничего не воспроизводится.
может кто поправить меня в этом:
  1.  
  2.     Dim WFmt As New Microsoft.DirectX.DirectSound.WaveFormat
  3.     Dim Capt As Microsoft.DirectX.DirectSound.Capture
  4.     Dim CaptBuf As Microsoft.DirectX.DirectSound.CaptureBuffer
  5.     Dim desc As New Microsoft.DirectX.DirectSound.CaptureBufferDescription
  6.     Dim cdc As New Microsoft.DirectX.DirectSound.CaptureDevicesCollection
  7.     Dim dGuid As System.Guid
  8.     Dim descPlay As New Microsoft.DirectX.DirectSound.BufferDescription
  9.     Dim strm As New System.IO.MemoryStream
  10.  
  11.     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  12.         Dim channels As Short
  13.         Dim bitsPerSample As Short
  14.         Dim samplesPerSecond As Integer
  15.         channels = 2
  16.         bitsPerSample = 16
  17.         samplesPerSecond = 22050
  18.  
  19.         WFmt.BlockAlign = channels * (bitsPerSample / 8)
  20.         WFmt.AverageBytesPerSecond = WFmt.BlockAlign * samplesPerSecond
  21.         WFmt.BitsPerSample = bitsPerSample
  22.         WFmt.Channels = channels
  23.         WFmt.FormatTag = Microsoft.DirectX.DirectSound.WaveFormatTag.Pcm
  24.         WFmt.SamplesPerSecond = samplesPerSecond
  25.  
  26.         desc.Format = WFmt
  27.         desc.BufferBytes = 2 * (WFmt.AverageBytesPerSecond / 5)
  28.  
  29.         descPlay.Format = WFmt
  30.         descPlay.BufferBytes = 2 * (WFmt.AverageBytesPerSecond / 5)
  31.         descPlay.ControlPositionNotify = True
  32.         descPlay.ControlFrequency = True
  33.         descPlay.ControlPan = True
  34.         descPlay.ControlVolume = True
  35.  
  36.         dGuid = cdc.Item(1).DriverGuid
  37.         Capt = New Microsoft.DirectX.DirectSound.Capture(dGuid)
  38.         CaptBuf = New Microsoft.DirectX.DirectSound.CaptureBuffer(desc, Capt)
  39.     End Sub
  40.  
  41.     Private Sub rec_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rec.Click
  42.         Me.Text = "recording"
  43.  
  44.         CaptBuf.Start(True)
  45.     End Sub
  46.  
  47.     Private Sub stopRec_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles stopRec.Click
  48.         Me.Text = "Form1"
  49.  
  50.         Dim y, g As Integer
  51.         CaptBuf.Stop()
  52.         CaptBuf.GetCurrentPosition(g, y)
  53.         CaptBuf.Read(0, strm, y, Microsoft.DirectX.DirectSound.LockFlag.None)
  54.  
  55.         Dim devCol As New Microsoft.DirectX.DirectSound.DevicesCollection
  56.         Dim dev As New Microsoft.DirectX.DirectSound.Device(devCol.Item(1).DriverGuid)
  57.         Dim bufPlay As New Microsoft.DirectX.DirectSound.Buffer(descPlay, dev)
  58.         dev.SetCooperativeLevel(Me, Microsoft.DirectX.DirectSound.CooperativeLevel.Normal)
  59.         bufPlay.Write(0, strm, strm.Length, Microsoft.DirectX.DirectSound.LockFlag.None)
  60.         bufPlay.Play(0, Microsoft.DirectX.DirectSound.BufferPlayFlags.Looping)
  61.     End Sub

Ответить

Номер ответа: 6
Автор ответа:
 AWР



ICQ: 345685652 

Вопросов: 38
Ответов: 106
 Web-сайт: bomber.h17.ru
 Профиль | | #6
Добавлено: 04.11.09 19:03
Блин и страницу то по этой теме чтобы на VisualBasic с directX9 не могу найти.

Ответить

Номер ответа: 7
Автор ответа:
 Millenium



ICQ: 629966 

Вопросов: 118
Ответов: 903
 Web-сайт: www.aliyev.us
 Профиль | | #7
Добавлено: 19.11.09 00:16
http://www.vb6.us/files/File/VB6-DDraw7Sample-source2.zip - Вот. Может поможет? И туториал к нему: http://www.vb6.us/tutorials/using-windows-resource-files-vb6

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам