.NET Windows Media Player 라이브러리를 사용하여 Windows Media Player의 다양한 파일 속성 (예 : 사용자 등급)을 프로그래밍 방식으로 얻고 변경할 수있었습니다. Player.openPlayer(url)
호출을 통해 동일한 라이브러리를 사용하여 Windows Media Player 인스턴스를 제어 (재생, 정지, 다음 등)하고 싶습니다. 이론적으로 Player.controls 객체를 통해이 작업을 수행 할 수 있어야하지만 액세스 할 때 사용할 수있는 컨트롤이 없습니다. 모든 Player 속성/메서드/이벤트는 컨트롤 개체를 제외하고 나에게 제공됩니다. 여기에 내가 무엇을 시도했다 설명하기 위해 몇 가지 예제 코드입니다 :IronPython을 통해 Windows Media Player 인스턴스 제어 문제
import clr
clr.AddReferenceToFile("Interop.WMPLib.dll")
from Interop.WMPLib import WindowsMediaPlayerClass
wmp = WindowsMediaPlayerClass()
wmp.openPlayer(r"C:\Users\Public\Music\Sample Music\Kalimba.mp3")
이 잘 작동,하지만 내가 할 때 다음
print wmp.controls.isAvailable("play").ToString()
print wmp.controls.isAvailable("pause").ToString()
print wmp.controls.isAvailable("stop").ToString()
...
나는 각 컨트롤에 대해 false를 얻는다. 내 (단순한) 응용 프로그램에서 이러한 컨트롤을 사용할 수없는 이유는 무엇입니까? 아마 내가 잘못된 방향으로 가고 있을까요? WMP 12를 사용하고 있으므로 호환이 가능해야합니다. 나는 정말로 다른 API를 사용하지 않기를 원하지만, 지금은 아무 것도 시도하지 않을 것이다. http://msdn.microsoft.com/en-us/library/dd564034%28v=vs.85%29.aspx
편집 : 여기
참조 설명서입니다 빠른 수정이 지금 들고,하지만, 난 여전히 아직 실제적인 해결책을 발견하지 않았습니다.
질문이 명확하지 않습니까? – covertCoder
아니요, 그렇다고해도 지식의 교차로가 필요합니다. IronPython을 사용하여 WMP를 제어 한 사람이 처음 일 것입니다. :)'isAvailable'을 무시하고'play()'를 호출하면 어떻게 될까요? –
다른 모든 제어 기능과 마찬가지로 아무 일도 일어나지 않습니다. 다른 함수는 오류를 반환하지 않지만 의도 한 기능을 수행하지 않습니다. 현재 퀵 픽스는 새로운 재생 목록/미디어 파일을 열 때마다 Player.openPlayer를 호출하는 것이지만 WMP 인스턴스가 깜박 거리거나 최악의 상황이 내가하는 일에서 무엇이든지간에 집중할 수 있습니다. – covertCoder