Bonjour,
Je cherche à créer un une application qui récupère la playlist en court du Lecteur Windows Media, j'ai cherché un code similaire et j'ai trouvé ceci :
http://www.wiremote.com/ .
J'ai téléchargé le code source mais c'est en C#, je me demandais si il serait possible de faire l'équivalent de ses quelques lignes si dessous en c/c++
Merci
--------------------------------------------------
#region Using directives
using System;
using System.Text;
using System.Collections.Generic;
//using Microsoft.MediaPlayer.Interop;
using Microsoft.Win32;
#endregion
namespace WIremote
{
/// <summary>
/// Description of MediaPlayer.
/// </summary>
public class MediaPlayer
{
private WMPLib.WindowsMediaPlayerClass Player;
private WMPLib.IWMPPlaylist allPlaylists;
private WMPLib.IWMPPlaylistArray playlistArray;
private MediaFarm mediaFarm;
private List p_playlistIds = new List();
private Log log;
public enum playerStatus { Waiting, Play, Stop, Pause };
private enum modes { None, Audio, Radio, Video };
private enum infobarmodes { Normal, Change, Add }
private enum renderCommands {
SearchBar, PlayBar, InfoBar, InfoBarRadio,
SearchResult, MediaCollection, MediaCollections, RadioStation,
Main, MainWithSearch }
private renderCommands renderCommand;
private playerStatus status;
private modes mode;
private string idString;
private int idInt;
private bool idOkay;
private HtmlString html = null;
private infobarmodes infobarmode = infobarmodes.Normal;
private MediaTemplates myTemplates = null;
public MediaPlayer()
{
log = Log.Instance;
Player = new WMPLib.WindowsMediaPlayerClass();
log.Debug("MediaPlayer.cs", "MediaPlayer() - start");
if (Player == null)
{
Message.Instance.MessageBoxAndExit(
Message.messageCode.NoWindowsMediaPlayerConnectionMediaPlayer);
}
status = playerStatus.Waiting;
mode = modes.None;
ClearPlaylist();
playlistArray = Player.playlistCollection.getAll();
mediaFarm = new MediaFarm();
log.Debug("MediaPlayer.cs", "MediaPlayer() - end");
}
public void Play()
{
Player.controls.play();
Status = playerStatus.Play;
}
public void Resume()
{
Player.controls.play();
Status = playerStatus.Play;
}
public void Stop()
{
Player.controls.stop();
Status = playerStatus.Stop;
}
public void Previous()
{
Player.controls.previous();
}
public void Next()
{
Player.controls.next();
}
public void Pause()
{
Player.controls.pause();
Status = playerStatus.Pause;
}
//
// PLAYLIST
//
public void ClearPlaylist()
{
WMPLib.IWMPPlaylist newPlaylist = Player.mediaCollection.getByName("WIremote");
if (newPlaylist == null)
{
Player.currentPlaylist = Player.newPlaylist("WIremote");
Player.currentPlaylist.clear();
}
else {
Player.currentPlaylist = newPlaylist;
}
p_playlistIds.Clear();
}
public void AddToPlaylist(int var)
{
Player.currentPlaylist.appendItem(mediaFarm.GetItem(var));
p_playlistIds.Add(var);
}
private bool existInPlaylist(int id)
{
bool res = p_playlistIds.Contains(id);
return res;
}
...
...