2017-04-06 7 views
-1

사용자가 응용 프로그램 내에서 시스템 볼륨을 수정할 수있는 기능을 추가해야합니다. 이 목적을 위해 나는이 사이트의 다른 질문에서 언급 한대로 CoreAudioApi.dll을 사용했습니다.CoreAudioApi.dll 일부 컴퓨터에서 COMException이 발생합니다.

How to programmatically set the system volume?

나는이 응용 프로그램이 다른 사람의 컴퓨터에서 실행되는 경우, 그러나, 내 개발 컴퓨터에서 잘 작동 CoreAudioApi.dll

에 대한 참조를 추가 한 (예를 테스트하는 사람) 다음, 우리가 얻을 예외 :

A first chance exception of type 'System.Runtime.InteropServices.COMException' occurred in CoreAudioApi.dll 
A first chance exception of type 'Autofac.Core.DependencyResolutionException' occurred in Autofac.dll 
A first chance exception of type 'Autofac.Core.DependencyResolutionException' occurred in Autofac.dll 
A first chance exception of type 'Microsoft.Practices.ServiceLocation.ActivationException' occurred in Microsoft.Practices.ServiceLocation.dll 

두 PC 모두 Windows 7, 64 비트를 실행 중입니다.

이 문제의 원인에 대한 아이디어가 있으십니까? 다른 DLL이나 다른 DLL을 참조 할 수 있습니까? 정확히 예외가 발생하는 위치

편집

그냥

private readonly MMDeviceEnumerator _deviceEnumerator = new MMDeviceEnumerator(); 
private readonly MMDevice _playbackDevice; 

public SettingsViewModel() 
{ 
    // The exception occurs in the following line: 
    _playbackDevice = _deviceEnumerator.GetDefaultAudioEndpoint(EDataFlow.eRender, ERole.eMultimedia); 

디버거는

+0

다른 사용자가 컴퓨터의 관리자입니까? – BugFinder

+0

@BugFinder - 관리자로 실행 해 보라고 이미 요청했지만 아무런 차이가 없습니다. – colmde

답변

0

으로 (정보가 도움이 경우에) ServiceLocatorImplBase.cs를 입력하려고 ... 좁히려 보통, 나는 무엇인가보고있는 시간을 보내고, 질문을 게시한다, 그리고, 그것은 곧 이후에 나를 때린다.

다른 컴퓨터의 오디오 하드웨어는 스피커 또는 헤드폰이 연결되어 있지 않아도 사용할 수있는 것처럼 보입니다. 그들은 그렇지 않았습니다. (응용 프로그램에 소리가 추가되지 않았기 때문에 그는 Windows 볼륨 믹서를 육안으로 검사하여 테스트했습니다.) 다른 사용자가 헤드폰을 꽂았을 때 모든 것이 정상이었습니다.

오디오 하드웨어를 사용하지 않도록 설정하여 문제를 재현 할 수 있습니다. 이 예외를 처리하고이 경우 UI 컨트롤을 사용하지 않도록 설정해야합니다.