첫째로, 당신은 DirectShow를 .NET (DirectShowLib)를 사용하지 않는 경우, here는 것을 얻을 : 그것은 역할 관리되지 않는 DirectShow를 및 C#
무엇 다음 것은 꽤 간단한 예입니다 사이에 (매우 완료) 인터페이스로 어떻게 Vibhore가 기본값으로 설정 한 어떤 오디오 기기 변경하는 방법을 묻지도 않고 같은이가 "대답은"얼마나 볼 수 없습니다, 원하는 오디오 장치 개인적으로
using DirectShowLib;
private IGraphBuilder m_objFilterGraph = null;
private IBasicAudio m_objBasicAudio = null;
private IMediaControl m_objMediaControl = null;
private void playAudioToDevice(string fName, int devIndex)
{
object source = null;
DsDevice[] devices;
devices = DsDevice.GetDevicesOfCat(FilterCategory.AudioRendererCategory);
DsDevice device = (DsDevice)devices[devIndex];
Guid iid = typeof(IBaseFilter).GUID;
device.Mon.BindToObject(null, null, ref iid, out source);
m_objFilterGraph = (IGraphBuilder)new FilterGraph();
m_objFilterGraph.AddFilter((IBaseFilter)source, "Audio Render");
m_objFilterGraph.RenderFile(fName, "");
m_objBasicAudio = m_objFilterGraph as IBasicAudio;
m_objMediaControl = m_objFilterGraph as IMediaControl;
m_objMediaControl.Run();
}
에, 오디오 파일을 재생합니다 - 사용자 상호 작용 여부와 상관없이 오히려, 질문은 분명히, 기본 이외의 오디오 장치로 출력하는 방법을 묻습니다. 예를 들어, 많은 게임/오디오 관련 앱에서, 사용자는 자신이 선택할 수있는 사용 가능한 재생 장치 목록을 포함하는 목록 상자가 제공됩니다. 선택한 장치는 응용 프로그램/게임이 오디오 출력에 사용할 장치입니다. –
@ Digital_Utopia : 좋은 지적인데 이제는 더 나은 대답이 될 것입니다. –
훨씬 좋음;) 업데이트를보기 전에 답을 추가했습니다. 마침내 혼자서 알아 내려고 했으므로 예제로 내 프로젝트의 스 니펫을 추가 할 것입니다. –