2013-08-07 11 views
1

현재 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 
+0

VB6도 Windows 7에서 실행됩니까? 32 또는 64 비트 Win7을 사용하고 있습니까? – Tim

+0

Tim, VB6은 Windows 8의 전체 수명주기 동안 지원되므로 예, 작동합니다. http://msdn.microsoft.com/en-us/vstudio/ms788708.aspx Highcore, 코드가 없으므로 모든 시도는 작동하지 않는 방법을 사용한 솔루션이었습니다. 내가 지금까지 시도한 모든 것은 장치에 오디오 스트림을 여는 것이 었습니다. 나는 그것을 원하지 않습니다. 검색 시간이 지나도 찾을 수없는 Windows 기본값을 변경하고 싶습니다. – Calvin

답변

1

WASAPI를 탐색해야 할 것 같습니다. 필자가 읽는 바로는 오디오 파일 자체를 변경하는 것 외에도 프로그래밍 방식으로 출력 샘플 속도를 강제하는 유일한 방법입니다.

http://msdn.microsoft.com/en-us/library/windows/desktop/dd371455(v=vs.85).aspx

당신은 그것을위한 C++/CLI 래퍼 주위를 검색 할 수 있습니다 (또는 자신을 쓰기) .NET에서 그것의 모든 사용을 얻을 수 있습니다.

+0

API를 직접 살펴볼 것이지만 NAudio에는 래퍼가 포함되어있어 아무 것도 보지 못했다고 생각합니다. 그래도 조금 더 감사 할께. 고마워. – Calvin

+0

예 NAudio에는 WASAPI 랩퍼가 있습니다. 독점 모드를 사용하는 경우에만 샘플 속도와 비트 심도를 설정할 수 있습니다. –