각 키마다 다른 사운드 (WAV 파일)가있는 SAMPLER 프로그램을 작성하려고합니다..NET에서 .WAV 파일 재생
누군가 내가 설명하고 WAV 파일을 재생하는 방법을 배울 수있는 설명 링크를 제공 할 수 있습니까?
중요한 점은 Microsoft Visual C# 및 WinForms를 사용하고 있습니다. 단순히 우주 전체 다행히
에서 최고의 사운드 라이브러리입니다
각 키마다 다른 사운드 (WAV 파일)가있는 SAMPLER 프로그램을 작성하려고합니다..NET에서 .WAV 파일 재생
누군가 내가 설명하고 WAV 파일을 재생하는 방법을 배울 수있는 설명 링크를 제공 할 수 있습니까?
중요한 점은 Microsoft Visual C# 및 WinForms를 사용하고 있습니다. 단순히 우주 전체 다행히
에서 최고의 사운드 라이브러리입니다
SoundPlayer simpleSound = new SoundPlayer(strAudioFilePath);
simpleSound.Play();
은 일시 중지하고 기능을 다시 시작할 수 있습니까? – Rick2047
나는 정직한, 그러나이 낮은 수준 선수를 보아 ... http://www.codeproject.com/KB/audio-video/cswavplay.aspx, 및 당신이 사용하고있는 경우에보십시오. 3.5에서는 일시 중지 및 다시 시작을 지원하는 MediaElement를 사용할 수 있습니다. –
using System.Media; –
사용 FMOD는, 그들은 당신이 상상을 시도 할 수 있습니다 최상의 오디오 API에 대한 C#을 래퍼를 제공하는 것, 당신은하지 않습니다 플레이 스테이션이나 X 박스에서 코드가 작동하도록 코드 한 줄을 변경해야합니다. 개발자는 거의 반응이 없습니다 (저녁에 버그를보고 침대에 가서 수정 된 빌드를 깨울 때 사용할 수 있습니다) 설명서는 읽기 쉽고 이해할 수 있으며 거대한 SDK에 많은 예제가 있으므로 문서가 꽤 이상하므로 튜토리얼을 제공하지 않아도됩니다. uch 완벽
FMOD로 wav를 재생하는 것은 단지 5 줄의 코드이며, 재생의 균형과 볼륨을 3d 엔진에 연결하면서 효과를 적용 할 수 있습니다 (consc 지점과 오디오 소스, 4 라인 ....
(사용 C#) 할 소리, -> FMOD.
이 래퍼가 도움이되었다는 것을 알았습니다. http://stackoverflow.com/a/8470050/74585 –
SoundPlayer simpleSound = new SoundPlayer(strAudioFilePath);
simpleSound.PlaySync();
소리가 비동기 적으로 재생되기 때문입니다.
이것은 받아 들인 대답에 대한 논평입니다. – jgauffin
이 콘솔 기반 솔루션은 LINQPad (따라서 .Dump() 확장 메서드 호출)와 NAudio을 사용합니다 (분명히하기 위해 몇 가지 클래스에서 전체 네임 스페이스를 사용한다는 것을 알 수 있습니다). 올바르게 설정하려면 http://share.linqpad.net/d7tli8.linq (NuGet의 NAudio 추가)에서 스 니펫을 다운로드하면됩니다.
실행하려면 linqpad에서 열고 wavFilePath
값을 로컬 웨이브 파일 경로로 설정하고 F5를 누릅니다. Play
은 비동기이므로 완료 될 때까지 대기하려면 Console.ReadLine
을 수행하십시오.
string wavFilePath = @"TODO";
var reader = new NAudio.Wave.AudioFileReader(wavFilePath);
reader.Dump("AudioFileReader");
var sampleProvider = reader.ToSampleProvider().Dump("sample provider");
NAudio.Wave.WaveOut.DeviceCount.Dump("num waveout on comp");
var outputDeviceInfo = WaveOut.GetCapabilities(0).Dump();
var outputter = new WaveOut() {
DesiredLatency = 5000 //arbitrary but <1k is choppy and >1e5 errors
, NumberOfBuffers = 1 // 1,2,4 all work...
, DeviceNumber = 0
}.Dump();
outputter.Init(reader);
outputter.Play(); // async
Console.Read();
outputter.Stop();
그리고 이것은 .Dump 호출 모두의 출력은 당신이 궁금해하는 경우, 내 컴퓨터에 모습입니다 :
다소 관련 : 를 * http://stackoverflow.com/questions/4429513/play-wav-file-async-multiple-times-with-net * http://stackoverflow.com/questions/1087763/play-pcm-data-in- net-framework-2 – Pat