문제

C#에서 WAV 파일을 WMA로(또는 그 반대로) 변환하는 가장 좋은 솔루션은 무엇입니까?실제로 이 기능은 이미 Windows Media Encoder SDK를 사용하여 구현한 적이 있지만 내 응용 프로그램과 함께 Windows Media Encoder를 배포해야 하는 것은 말할 것도 없이 번거롭습니다.Windows Media Format SDK에는 더 이상 사용되지 않는 것으로 표시된 API의 큰 섹션이 있습니다.Windows SDK에서 사용할 수 있는 DMO(DirectX 미디어 개체)가 있는 것처럼 보이지만 작성해야 할 상호 운용성이 엄청나게 많습니다.

변환을 수행할 수 있는 관리되지 않는 라이브러리에 대한 좋은 관리되는 래퍼가 있는지 궁금합니다.폐쇄 소스 상용 응용 프로그램의 일부로 배포할 수 있는 라이센스가 필요합니다.

도움이 되었습니까?

해결책

개인적으로 시도해 보지는 않았지만(그래서 '최상의' 솔루션인지 확실하지 않음) http://www.codeproject.com/KB/audio-video/WmaCompressor.aspx 귀하의 요구 사항을 충족해야 할 것 같습니다 ...

다른 팁

다음을 살펴보실 수 있습니다. 베이스 라이브러리.인코딩/디코딩을 수행하기 위한 BASSWMA 및 BASSEnc와 같은 추가 기능이 있습니다.모든 API는 다음을 사용하여 .NET에서 액세스할 수 있습니다. BASS.Net 싸개.

BASS와 BASS.Net 모두 합리적인 비용(각각 €100)을 내고 상업적 사용이 허가될 수 있습니다.

약간의 C++/CLI 작성에 익숙하다면 이 작업을 수행하기 위해 DirectShow 주변에 래퍼를 만드는 데 많은 코드가 필요하지 않습니다.그런 다음 interop을 다룰 필요 없이 C# 어셈블리에서 직접 호출할 수 있습니다.DirectShow를 사용하면 파일 구문 분석이나 I/O를 수행할 필요가 없기 때문에 WMF를 직접 사용하는 것보다 훨씬 쉽습니다. 모든 작업이 완료됩니다.참고로 100줄 미만의 C++로 WMA를 WAV 파일로 인코딩/디코딩할 수 있는 상용 앱의 코드가 모두 친숙한 .Net 클래스에 포함되어 있습니다.스마트 포인터를 현명하게 사용하면 이 경로를 따라가는 데 도움이 됩니다.

우선, 이것을 보세요:

http://windowsmedianet.sourceforge.net/

그런 다음 IWMWritter를 검색하고 이를 초기화하는 다양한 방법을 찾으세요.원시 PCM 데이터를 제공하고 wma 파일을 작성합니다.

이에 대한 자세한 내용을 보려면 내 답변에 태그를 지정하세요.

당신은 볼 수도 있습니다 www.mitov.com.도움이 될 수 있는 몇 가지 라이브러리가 있습니다.상업용 제품으로 배송하려면 사본을 구입해야 할 것이라고 생각하지만 합리적인 가격이라고 생각합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top