이것이 주관적인 질문처럼 들리 겠지만,이 주제에 대한 좋은 의견이 필요합니다.WPF에서 오디오 재생을위한 프레임 워크는 무엇입니까?
C#/WPF GUI에서 사용자 상호 작용에 대한 응답으로 단파 파일을 재생해야합니다. 다음과 같이
사양은 다음과 같습니다
- 낮은 대기 시간 (재생을 즉시 시작)
- 코드가 네이티브 C#을해야을 (닷넷 4.0)
- WPF와 함께 받아야합니다
- 여러 개의 동시 플레이
- 사운드 버퍼 조작에 대한 제한이 없습니다.
- 미래가 보장됩니다. (몇 년 후에도 계속 지원할 예정입니다.)
- 사운드 플레이어 모듈은 간단한 클래스 (= C# 코드),하지 (은 Microsoft의 DirectX SDK를 사용하여) 내가 DirectSound를 함께 아주 잘 함께있어 지금까지 캡슐화 된 DLL
해야한다, 그것은 언급 한 모든 요구 사항에 맞는 위. Visual Studio 2010 (.Net 4.0) 이후 Managed DirectX (MDX)는 더 이상 지원되지 않으며 최신 DirectX SDK에서도 사라졌습니다.
내 옵션은 무엇입니까?
- 게임을 개발하는 것이 아니기 때문에 XNA는 너무 과장하여 보이지만 응용 프로그램입니다. 자세한 내용은 this question을 참조하십시오.
MDX를 대체하기로되어 있지만 구현에 대한 많은 무서운 이야기를 읽습니다. 아니면 그 모든 동화인가? - SlimDX는 옵션 일 수 있지만 제 3 자 제품이며 상당히 큰 프로젝트입니다.
- 내가 알고있는 몇 가지 "작은"솔루션은 자신의 단점 각각이 있습니다 :
- MediaElement에 (만 WMP10 +와)
- P는/WinMM
- 는 PlaySound
- SoundPlayer
- 으로 호출 MediaPlayer
- 와일드에는 엄청난 양의 맞춤형 오디오 라이브러리가 있습니다. 엘.
(NAudio, BASS, waveOut ...)
는 내가 새로운 프로젝트를 위해 사용해야하는 일에 대해 정말 의아해 해요. 나는 그것의 한계가 나를 사용하는 것을 방해한다는 것을 알기 위해 전혀 새로운 프레임 워크를 파고 드는 것을 원하지 않는다.
미리 감사드립니다.
왜 제 3 자 관리되지 않는 라이브러리를 제외하는지 궁금합니다. 결국 DirectX는 비 관리 코드입니다. 모든 사운드 라이브러리는 특정 레벨에서 비 관리 코드를 갖습니다. 왜 Microsoft 관리되지 않는 라이브러리는 괜찮습니까, 제 3 자 라이브러리는 그렇지 않은 것입니까? –
M $가 타사 솔루션보다 자신의 제품에 더 나은 지원을 제공 할 것이라고 생각했기 때문에 처음에는 괜찮 았지만 DirectX를 중단 한 이후로는 더 이상 확신 할 수 없습니다 ... 이제는 두려워요. 미래의 .Net 버전은 M $에서 나온 것이 아니기 때문에 현재 작동 할 수도있는 것을 지원하지 않을 것입니다. –
NAudio에서 지금 일하십니까? 아니면 다른 프레임 워크를 사용하기로 결정 했습니까? – 10ff