현재 USB 사운드 카드의 샘플 속도와 비트 전송률을 프로그래밍 방식으로 설정하는 솔루션을 찾기 위해 고심하고 있습니다. Windows XP에서 Windows 7로 테스트 프로그램을 전환하는 중입니다. USB 사운드 카드처럼 작동하는 제품이 있습니다. 일부 테스트에서는 사운드 카드를 통해 48k 신호를 보내고 DAC를 통해 신호를 라우팅 한 후 신호를 측정합니다. 나는 측정 하드웨어 하드웨어/소프트웨어가 신호 생성기를 독점 모드에 두지 않고 있으며, Windows가 혼란스러워지고 장치를 공유 모드로 설정한다고 생각합니다.이 모드는 44.1k/16bit로 샘플 속도를 기본값으로합니다.이 값을 변경하고 싶습니다. 우리가 48k/24bit까지 장치를 시작할 때.Windows 7에서 샘플 속도 설정
내가보기에 모든 것이 이것이 가능하지 않다고 말하고 있기 때문에 누군가가 올바른 방향으로 나를 밀어 붙일 수 있기를 바라고 있습니다. (또한 .NET 솔루션을 선호합니다. call/execute from .NET은 괜찮을 것이다).
여기 내가 시도한 한 가지가 있지만 오디오 재생에만 사용되는 개체를 설정하기 만하면 샘플/비트 심도가 제대로 설정되지 않습니다.
Imports NAudio.Wave
Module ConfigureDevice
Private Const SAMPLE_RATE As Integer = 48000
Private Const CHANNELS As Integer = 2
Sub Main(ByVal args() As String)
ConfigureDirectSound(args(0))
End Sub
Private Sub ConfigureDirectSound(ByVal name As String)
Dim out As New DirectSoundOut(GetWaveOutDeviceNumber(name))
Dim waveFormat = New WaveFormat(SAMPLE_RATE, CHANNELS)
Dim waveProvider = New BufferedWaveProvider(waveFormat)
out.Init(waveProvider)
End Sub
Private Function GetWaveOutDeviceNumber(ByVal name As String) As System.Guid
Dim devices = DirectSoundOut.Devices
For Each d In devices
If d.Description = name Then
Return d.Guid
End If
Next
Return Nothing
End Function
End Module
VB6도 Windows 7에서 실행됩니까? 32 또는 64 비트 Win7을 사용하고 있습니까? – Tim
Tim, VB6은 Windows 8의 전체 수명주기 동안 지원되므로 예, 작동합니다. http://msdn.microsoft.com/en-us/vstudio/ms788708.aspx Highcore, 코드가 없으므로 모든 시도는 작동하지 않는 방법을 사용한 솔루션이었습니다. 내가 지금까지 시도한 모든 것은 장치에 오디오 스트림을 여는 것이 었습니다. 나는 그것을 원하지 않습니다. 검색 시간이 지나도 찾을 수없는 Windows 기본값을 변경하고 싶습니다. – Calvin