2009-04-10 2 views
5

wav, mp3 또는 ogg 파일을 디코딩하여 DirectSound 또는 OpenAL을 통해 원하는대로 디코딩 된 스트림을 재생할 수있는 크로스 플랫폼 (Windows, MacOSX 및 Linux의 .Net 및 Mono) 방식을 찾고 있습니다..Net/Mono에서 wav, mp3 및/또는 ogg를 디코딩하는 방법은 무엇입니까?

mp3 또는 ogg를 디코딩 할 수있는 솔루션이면 충분합니다. 디코딩 둘 다 필요하지 않습니다. 그것 (또는 다른 해결책)가 wav를 또한 암호문을 해독 할 수있는 경우에, 저것은 이상적 일 것입니다, 그러나 나는 mp3 또는 ogg에 잠재적으로 나의 wav 파일을 개조 할 수 있었기 때문에 준엄하게 필요하지 않다.

wav 파일 만 디코딩 할 수있는 솔루션은 부분적인 해결책 일 뿐이지 만 얻는 것을 취할 것입니다. ;-)

여기에 이미 검토 한 내용은 다음과 같습니다

  • DirectSound를하고 ALUT 모두 지원 WAV 디코딩,하지만 ALUT는 더 이상 사용되지 않습니다.
  • ffmpeg는 거의 모든 것을 디코딩하지만, 플랫폼간에 공통된 안정적인 릴리스가없는 것 같습니다.
  • 아직 csvorbis를 시도하지는 않았지만 매우 오래되었고 현재 상태가 확실하지 않습니다.

위의 솔루션 중 하나가 실제로 최선의 방법이라는 사실을 저도 잘 알고 있습니다.

감사합니다.

답변

0

나는 ffmpeg로 작업했으며 지금까지 나는 그것을 좋아한다. 그렇지만 릴리스 간에는 몇 가지 문제가 있지만 가장 효율적입니다.

+0

여러 플랫폼에서 ffmpeg를 쉽게 재배포 할 수 있습니까? 특히 Tao.Ffmpeg 또는 일부 다른 .Net 래퍼와 호환되는 Windows/Mac/Linux 바이너리가 쉽게 배포되어 있습니까? –

+0

은 상당히 쉬워야합니다 .Tversity는 모든 미디어를 xbox 용으로 트랜스 코딩하는데 사용합니다. –

1

System.Media.SoundPlayer를 사용하여 직접 .wav 파일을 재생할 수 있어야합니다. 그게 당신의 유스 케이스에 도움이되는지 확실하지 않습니다.

+0

불행히도 저는 그렇게 생각하지 않습니다. 3D 사운드 효과를 수행하기 위해 DirectSound/OpenAl에 전달할 수 있도록 원시 파형이 필요합니다. –

+0

또 다른 문제는 SoundPlayer가 GC와 잘 작동하지 않으며 추가 해킹이 필요하다는 것입니다 (http://www.codeproject.com/KB/audio-video/soundplayerbug.aspx) –

4

당신은 당신이 찾고있는 라이선스의 종류를 언급하지 않은 : 나는 wav 파일 형식을 설명하는이 문서를 사용했다. 나는 비영리 프로젝트에서 무료로 사용할 수있는 FMOD으로 훌륭한 결과를 얻었습니다. 그것은 ogg와 mp3를 포함한 다양한 포맷을 재생하며, 어떻게 재생할 것인지를 제어하는 ​​광범위한 API를 가지고 있습니다. 그것은 당신이 필요로하는 것처럼 크로스 플랫폼입니다.

FMOD는 크게 게임을 대상으로합니다. 훌륭한 3D 기능이 이미 포함되어 있다면 놀라지 않을 것입니다. (물론 모르겠지만)

처음에는 OGG 파일을 재생할 빈 C# 프로젝트를 얻는 것이 놀랄만큼 힘들었 기 때문에 나는 대단한 팬이라고 말할 수 있습니다.

관련 문제