2009-12-10 8 views
6

.NET 3.5에서 간단한 오디오 응용 프로그램을 시작하려고합니다 (VB.NET이 좋지만 C#을 사용하는 것이 좋습니다). 내가 뭘하려는 있습니다 :.NET 응용 프로그램에서 오디오 작업을 수행하는 데 권장되는 방법은 무엇입니까?

(기본값)에서 연속 기록 오디오 8 비트 당 샘플 PCM 포맷
  • 모든 N의 경우에 윈도우 오디오 입력 장치가 캡처 된 바이트
    • , 몇 가지 분석을 수행 원시 오디오 (일부 RMS 및/또는 SPL 계산 - 기본적으로 예쁜 VU 막대 그래프에 필요한 것)
    • 분석 후에 오디오 조각이 재미있을 경우 압축 된 파일 형식 (예 : MP3)

    첫 번째로 알아챈 것은 기본 .NET Framework의 오디오 지원이 거의 존재하지 않는다. 일부 검색 코드는 대부분 Managed DirectX를 사용하여 일부 샘플 코드를 발견했습니다. 내가 느슨하게 번역 생각하는 ...

    Message: DLL 'Microsoft.DirectX.dll' is attempting managed execution inside 
    OS Loader lock. Do not attempt to run managed code inside a DllMain or image 
    initialization function since doing so can cause the application to hang. 
    

    그러나, MSDN 문서의 부족, 라이브러리 (2004)와 VS.NET 2008 년에 다음과 같은 위협 MDA 예외의 빈티지는이 막 다른 골목 나를 설득 "do do even do 이 자료를 사용하십시오." 내가 여기서 뭔가를 놓치고 있거나, Managed DirectX가 정말로 죽었습니까? Another StackOverlow question은 XNA가 Managed DirectX를 대신하지만, 필자가 필요로하는 저수준 기능이 부족하다는 것을 암시합니다.

    그렇다면 .NET에서 오디오 개발에 실제로 유용한 API 또는 타사 라이브러리는 무엇입니까? COM interop 또는 P/Invoke를 사용하면 시작하기에 알맞은 .NET 예제 코드가있는 한 사용할 수 있습니다.

  • 답변

    4

    NAudio on CodePlex을 살펴 보았습니까? 필요한 기능이있는 것 같습니다.

    +0

    +1 매우 유망 해 보인다! 그것을 지금 시도해보십시오 ... – mdb

    1

    DirectX 기반 사운드 솔루션을 사용하려는 경우 SlimDX을 사용할 수 있습니다. DirectSound 및 XAudio 인터페이스를 지원합니다.

    +0

    내 약한 Google-fu가 간과 한 다른 유망한 솔루션 – mdb

    2

    저는 .NET API를 가지고있는 BASS library의 팬이었습니다.

    +0

    라이센스가 저에게 다소 차선책입니다. 그래도 북마크에 ... – mdb

    1

    또 하나는 FMOD입니다.

    +0

    감사합니다. 내가 발견 한 또 다른 하나는 http://www.ambiera.com/irrklang/irrklang_pro.html이며 이상한 라이선스로 인해 어려움을 겪고 있습니다. – mdb

    +0

    IrrKlang의 라이선스가 이상하다고 생각하지 않습니다 ... 개발자가 옵션을 사용하여 해당 상황에 가장 적합한 라이센스를 선택하십시오. –

    관련 문제