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;
namespace MusicBoss
{
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;
}
}
}
}