lundi 28 septembre 2015

Utiliser les api de XboxMusic / Groove Music dans Windows 10

Bonjour à tous,

Voici un nouvel article afin de vous aider à vite incorporer de la musique en streaming sous Windows 10.
Ceci fonctionne aussi bien pour les autres plateformes Windows (W8,W8.1,WP8.0, WP8.1 (silverlight et RT)) (je n'ai pas encore testé android et IPhone sous Xamarin)

Cet exemple traité est juste la diffusion des 30 sec de streaming de présentation d'une chanson.

L'étape prerequis de lancer Visual Studio --> File--> new project, est surement acquise, donc je ne ferais pas l'affront d'en parler ici :-)

Première étape:

Se connecter au site de microsoft music et suivre les étapes pour obetnir une clé sur Azure. Tout est clairement expliqué sur le site


Seconde étape

Le plus simple est de télécharger le code mis en ligne sur Github . Il est complet et on peut réutiliser  toutes les fonctions : les infos sur un artiste, albums, chansons, Photos ...



Troisième étape

Télécharger la dernière version package XboxMusic sur nuget :-) . Lors de l'écriture de cet article nous sommes à la version 1.7.0





Quatrième étape

Télécharger la dernière version de la librairie JSON sur nuget 




Cinquième étape

Pour faire simple, j'ai créé un petit folder pour y mettre toutes les assemblies dont j'ai besoin.
Celles-ci sont disponibles pour la plus part dans le projet téléchargé précédemment
 sous github

voici les différentes assemblies à avoir: 
  • Microsoft.Threading.Tasks
  • Microsoft.Threading.Tasks.Extensions
  • Microsoft.Xbox.Music.Platform.Client
  • Microsoft.Xbox.Music.Platform.Contract
  • System.Net.Http.Extensions
  • System.Net.Http.Primitives

Sixième étape:

Il suffit juste d'importer le tout dans votre pojet. Je vais mettre un exemple pour jouer un morceau 

Dans cet exemple il y a un simple bouton et un MediaElement pour jouer le son.

Et le tour est joué 


Code:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;
using Microsoft.Xbox.Music.Platform.Client;
using Microsoft.Xbox.Music.Platform.Contract.DataModel;


// The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=402352&clcid=0x409

namespace MusicBoss
{
    /// <summary>
    /// An empty page that can be used on its own or navigated to within a Frame.
    /// </summary>
    public sealed partial class MainPage : Page
    {
        protected static string ClientInstanceId { get { return "XboxMusicClientTests12345678901234567890"; } }
        private IXboxMusicClient _client;
        public MainPage()
        {
            this.InitializeComponent();
        }

        private async void button_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                _client = XboxMusicClientFactory.CreateXboxMusicClient("AzureProjectNAme", "AzureKey");
                
                string val = "music.F6DE7208-0100-11DB-89CA-0019B92A3933";
                StreamResponse son = await _client.PreviewAsync(val, ClientInstanceId, null);

                PrevMed.Source = new Uri(son.Url, UriKind.RelativeOrAbsolute);
               

                PrevMed.Play();
            }
            catch (FileNotFoundException ex)
            {
                string mess = ex.Message;
                throw;
            }
           
        }
    }
}

dimanche 13 septembre 2015

Reprise

Bon,

Ca fesait un petit bout de temps que je n'avais plus rien publié.
La tout, je suis de retour avec pas mal d'expérience en plus

Oracle (même si je deteste)
SQL server
Windows 10 universal app
Xamarin
Azure mobile app
Unit Testing
VS2015 - C#6
...

Aussi un peu plus de gestion de projets...

Stay tunes ;-)