2011-11-03 2 views
4

사용자에게 경고하는 프로그램이 있습니다. 하지만 지금은 기본 오디오 장치에서만 작동합니다. 사용자가 헤드셋에 플러그를 꽂았지만 착용하지 않으면 문제가됩니다. 그래서 내 질문 : "allert 소리를 기본 장치 대신 모든 오디오 장치를 설정할 수 있습니까?"모든 오디오 장치에서 사운드를 재생하는 방법

전 C#, WPF에서 프로그래밍하고 및 .NET 오른쪽 4.0

지금은 경고 사운드 재생이 코드를 사용하고 있습니다 :

private MMDeviceEnumerator devEnum = new MMDeviceEnumerator(); 
private MMDevice defaultDevice; 

....

defaultDevice = devEnum.GetDefaultAudioEndpoint(EDataFlow.eRender, ERole.eMultimedia); 

....

defaultDevice.AudioEndpointVolume.MasterVolumeLevel = 1; 
(210)

....

alarm.Play(); 

당신이 날 도울 수 있기를 바랍니다 :)

+0

귀하의 사용자가 다른 요구 사항을 가지고 있다고 가정하지만, 응용 프로그램에서 동시에 내 컴퓨터의 모든 오디오 장치를 통해 재생하려고 결정하면 매우 짜증이 날 것입니다. (일반 스피커, 돌비 디지털 출력, USB 헤드폰/마이크 연결) – asawyer

+0

장치간에 데이터를 복사 할 사람이 없습니다. 당신이 그들을 열거 할 때 당신은 문제의 모든 것을 독립적으로 시작할 수 있습니다. –

+2

헤드셋/스피커가 많은 시스템의 장치에 해당하지 않는 것이 문제입니다. 나는 장치가 오디오 드라이버 나 사운드 카드와 같다고 생각한다. 헤드셋을 플러그인하면 스피커가 음소거되지만 장치는 그대로 유지됩니다. – CodesInChaos

답변

0

당신이 EnumAudioEndpoints을 사용해야 할 수도 있습니다. 이 link을 방문하면 그 개념을 알 수 있습니다.

+0

ok ... 그렇지만. 컴퓨터 스피커에서 어떻게 재생합니까? 기본 엔드 포인트는 헤드셋 일 수도 있기 때문에? – Sulby

+0

스피커에만 연결하는 방법에 대한 예가 있습니까 (기본 장치가 아님) – Sulby

0

내가 지금까지 발견 한 내용은 Windows Vista 이상에서는 가능하지 않습니다.

관련 문제