문제

Windows Media Player의 독립 실행형 정식 버전과 상호 작용할 수 있는 방법을 찾고 있습니다.
주로 현재 재생 중인 트랙의 경로를 알아야 합니다.

iTunes SDK를 사용하면 이 작업이 정말 쉬워지지만 불행히도 Windows Media Player를 사용하여 이를 수행할 방법이 없습니다. 적어도 .Net(C#)에서는 pinvoke를 많이 사용하지 않고서는 정말 불편합니다.

감사해요

명확히 하기 위해:내 앱에 Windows Media Player의 새 인스턴스를 포함하고 싶지 않지만 대신 사용자가 별도로 시작한 Windows Media Player의 "실제" 정식 ​​버전을 제어/읽고 싶습니다.

도움이 되었습니까?

해결책

나는 이것을 가지고 있었다 https://social.msdn.microsoft.com/Forums/vstudio/en-US/dbd43d7e-f3a6-4087-be06-df17e76b635d/windows-media-player-remoting-in-c?forum=clr 내 북마크에 있지만 어쨌든 테스트하지는 않았습니다.올바른 방향을 가리키는 포인터입니다.공식적인 것은 아니며 약간의 조사가 필요하지만 Windows Media Player 주변에서는 상당히 간단한 래퍼(내부적으로 PInvoke를 계속 사용하지만 표시되지는 않음)를 얻을 수 있습니다.

도움이 되길 바랍니다.

아, 제가 착각했어요.현재 실행 중인 Windows Media Player 인스턴스를 제어하는 ​​것에 대해 말씀하시는 줄 알았습니다.Windows Media Player를 직접 호스팅하는 경우 WMPLib가 확실히 더 나은 솔루션입니다.

다른 팁

wmp.dll(\windows\system32\wmp.dll)에 대한 참조를 추가하기만 하면 됩니다.

using WMPLib;

그런 다음 미디어 플레이어를 인스턴스화할 수 있습니다.

var Player = new WindowsMediaPlayer();
// Load a playlist or file and then get the title 
var title = Player.controls.currentItem.name;

보다 프로그래밍 방식으로 Windows Media Player 컨트롤 만들기 자세한 내용은

Windows Media Player를 원격으로 제어하려면 IWMPRemoteMediaServices 인터페이스를 사용하여 독립 실행형 Windows Media Player를 제어할 수 있습니다.그리고 WMP 플레이어 개체에서 제목이나 파일 이름과 같이 원하는 모든 정보를 읽을 수 있어야 합니다.불행하게도 포함된 SDK에는 C# 샘플 코드가 없습니다.여기에서 파일을 얻을 수 있습니다: http://d.hatena.ne.jp/punidama/20080227 wmpremote.zip 파일을 찾으십시오. 원래 여기에서 왔습니다. http://blogs.msdn.com/ericgu/archive/2005/06/22/431783.aspx

그런 다음 WindowsMediaPlayer 개체로 캐스팅해야 합니다.RemotedWindowsMediaPlayer rm = new RemotedWindowsMediaPlayer();WMPLib.WindowsMediaPlayer myPlayer = this.GetOcx() as WMPLib.WindowsMediaPlayer;

그리고 거기 있잖아..

Windows Media Player와 상호 작용하면서 본 최고의 정보는 다음과 같습니다. 기사 스티븐 투브(Stephen Toub)가 작성했습니다.

그는 dvr-ms 파일을 재생하는 다양한 방법을 나열합니다(어떤 형식인지는 실제로 중요하지 않습니다).여러분이 관심을 가질 만한 부분은 미디어 플레이어 ActiveX 컨트롤을 사용하는 것에 관한 것입니다. 이 컨트롤은 Windows Media Player ActiveX COM 컨트롤을 마우스 오른쪽 버튼으로 클릭하고 추가하여 Visual Studio 도구 상자에 추가할 수 있습니다.그런 다음 플레이어를 앱에 삽입하고 URL과 같은 미디어 플레이어의 다양한 속성에 액세스할 수 있습니다.

WMPplayer.URL = stringPathToFile;

이 솔루션은 (내가 아는 한) Media Player의 새 인스턴스를 시작하기 때문에 원하는 것이 아닐 수도 있지만 올바른 방향을 알려줄 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top