ajout différents sons sur diff pages + ajout possibilité mettre et enlever des favoris, et affichage des favoris dans favoris (pas encore persistant et reste petit bug quand on enleve des favoris une partition à partir des favoris et non de l'acceuil où les favoris ne se rechargent pas

code
Vivien DUFOUR 2 years ago
parent f898d43bcf
commit a11db2eedf

@ -29,7 +29,7 @@ namespace MusiLib.Model
[DataMember]
public string Son { get; private set; }
public Partition(string nom, string auteur, int complexite, string description, string instrument,string image)
public Partition(string nom, string auteur, int complexite, string description, string instrument,string image, string son)
{
Nom = nom;
IdPartition = idTotal;
@ -37,7 +37,8 @@ namespace MusiLib.Model
Complexite = complexite;
Description = description;
Instrument = instrument;
Image=image;
Image = image;
Son = son;
}
}

@ -17,7 +17,7 @@ namespace MusiLib.Model
[DataMember]
public string Nom { get; private set; }
[DataMember]
public List<Partition> Favoris { get; private set; }
public static List<Partition> Favoris { get; private set; }
public Utilisateur(string nom)

@ -1,47 +1,47 @@
using Microsoft.Maui.Controls;
using MusiLib.Model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Cryptography.X509Certificates;
using System.Text;
using System.Threading.Tasks;
namespace MusiLib.Stub
{
public class Stub : IPersistanceManager
{
public (List<Partition>, List<Utilisateur>) chargeDonnees()
{
List<Partition> favoris = new List<Partition>();
List<Utilisateur> utilisateurs = new List<Utilisateur>();
Utilisateur kevin = new Utilisateur("Kevin");
Utilisateur michel = new Utilisateur("Michel");
utilisateurs.Add(kevin);
utilisateurs.Add(michel);
Partition amazing_grace = new Partition("Amazing Grace", "John Newton", 0, "Amazing Grace est l'un des cantiques chrétiens les plus célèbres dans le monde anglophone. La première publication des paroles date de 1779. Associé à diverses mélodies au fil des années, il est aujourd'hui interprété sur la musique de New Britain", "piano","amazing.png");
Partition au_clair_de_la_lune = new Partition("Au clair de la lune", "Édouard-Léon Scott de Martinville", 0, "Au clair de la lune est une chanson populaire française dont la mélodie, très caractéristique, ainsi que les paroles — surtout celles du premier couplet — sont si familières qu'elles ont fait l'objet d'innombrables citations, adaptations, parodies, pastiches, etc.", "piano","au_clair_de.png");
Partition aura_lee_love_me = new Partition("aura_lee_love_me_tender", "Elvis Presley", 0, " Love Me Tender est une ballade de 1956 enregistrée par Elvis Presley et publiée par Elvis Presley Music du film du même nom de la 20th Century Fox . Les paroles sont créditées à Vera Matson (bien que le parolier réel était son mari, Ken Darby) et Elvis Presley lui-même. La mélodie est identique à la ballade sentimentale de la guerre civile Aura Lea et donc attribuée au compositeur d'Aura Lea, l'Anglais George R. Poulton.", "piano", "aura_lee_love_me.png");
Partition ode_a_la_joie = new Partition("ode_joie", "Friedrich von Schiller", 0, "Ode à la joie — appelée également Hymne à la joie1 — est un poème de Friedrich von Schiller écrit en 1785. Il est surtout connu comme finale du quatrième et dernier mouvement de la 9e Symphonie de Beethoven, devenu l'hymne officiel de l'Union européenne2.\r\n\r\nCe poème célèbre l'idéal de l'unité et de la fraternité humaines (« Millions dêtres, soyez tous embrassés dune commune étreinte ! ). Son titre original est An die Freude, mais il est souvent appelé Ode an die Freude.", "piano", "ode_a_la.png");
Partition fais_dodo_colas = new Partition("fais_dodo", "Inconnu", 0, "Fais dodo est une berceuse enfantine en langue française dont l'auteur est inconnu et est dans le domaine public. La mélodie, très connue, date du XVIIIe siècle et se chante dans toutes les régions de France et également au Québec. Il y a quelques variantes, où les ingrédients du texte changent : nougat au lieu de chocolat, d'autres fois des bateaux : « Papa est en haut qui fait des bateaux pour le p'tit Pierrot qui fait son dodo... » ", "piano", "fais_dodo_colas.png");
Partition Frere_Jacques = new Partition("Frère_Jacques", "Jean-Philippe Rameau", 0, "Frère Jacques est une chanson enfantine française du XVIIIe siècle, connue dans le monde entier et traduite dans de nombreuses langues. Longtemps considérée comme anonyme, elle a vraisemblablement pour auteur Jean-Philippe Rameau. Selon l'historienne et musicologue Sylvie Bouissou, l'auteur de la chanson n'est autre que Jean-Philippe Rameau1,2. En effet, dans un exemplaire de son ouvrage Diapason général de tous les instruments à vent (1772), Louis-Joseph Francœur, violoniste de l'Opéra de Paris dans les années où Rameau y était actif, a inséré les manuscrits de quatre canons qu'il attribue à Rameau, parmi lesquels on trouve donc Frère Jacques, mais surtout deux autres déjà connus comme étant de Rameau;", "piano", "frere_jacques.png");
favoris.Add(amazing_grace);
favoris.Add(au_clair_de_la_lune);
favoris.Add(aura_lee_love_me);
favoris.Add(ode_a_la_joie);
favoris.Add(fais_dodo_colas);
favoris.Add(Frere_Jacques);
return (favoris, utilisateurs);
}
public void sauvegardeDonnees(List<Partition> p, List<Utilisateur> u)
{
}
}
}
using MusiLib.Model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Cryptography.X509Certificates;
using System.Text;
using System.Threading.Tasks;
namespace MusiLib.Stub
{
public class Stub : IPersistanceManager
{
public (List<Partition>, List<Utilisateur>) chargeDonnees()
{
List<Partition> favoris = new List<Partition>();
List<Utilisateur> utilisateurs = new List<Utilisateur>();
Utilisateur kevin = new Utilisateur("Kevin");
Utilisateur michel = new Utilisateur("Michel");
utilisateurs.Add(kevin);
utilisateurs.Add(michel);
Partition amazing_grace = new Partition("Amazing Grace", "John Newton", 0, "Amazing Grace est l'un des cantiques chrétiens les plus célèbres dans le monde anglophone. La première publication des paroles date de 1779. Associé à diverses mélodies au fil des années, il est aujourd'hui interprété sur la musique de New Britain", "piano","amazing.png", "amazing-grace.mid");
Partition au_clair_de_la_lune = new Partition("Au clair de la lune", "Édouard-Léon Scott de Martinville", 0, "Au clair de la lune est une chanson populaire française dont la mélodie, très caractéristique, ainsi que les paroles — surtout celles du premier couplet — sont si familières qu'elles ont fait l'objet d'innombrables citations, adaptations, parodies, pastiches, etc.", "piano","au_clair_de.png", "au_clair_de_la_lune.wav");
Partition aura_lee_love_me = new Partition("aura_lee_love_me_tender", "Elvis Presley", 0, " Love Me Tender est une ballade de 1956 enregistrée par Elvis Presley et publiée par Elvis Presley Music du film du même nom de la 20th Century Fox . Les paroles sont créditées à Vera Matson (bien que le parolier réel était son mari, Ken Darby) et Elvis Presley lui-même. La mélodie est identique à la ballade sentimentale de la guerre civile Aura Lea et donc attribuée au compositeur d'Aura Lea, l'Anglais George R. Poulton.", "piano", "aura_lee_love_me.png", "aura-lee-love-me-tender.mid");
Partition ode_a_la_joie = new Partition("ode_joie", "Friedrich von Schiller", 0, "Ode à la joie — appelée également Hymne à la joie1 — est un poème de Friedrich von Schiller écrit en 1785. Il est surtout connu comme finale du quatrième et dernier mouvement de la 9e Symphonie de Beethoven, devenu l'hymne officiel de l'Union européenne2.\r\n\r\nCe poème célèbre l'idéal de l'unité et de la fraternité humaines (« Millions dêtres, soyez tous embrassés dune commune étreinte ! ). Son titre original est An die Freude, mais il est souvent appelé Ode an die Freude.", "piano", "ode_a_la.png", "amazing-grace.mid");
Partition fais_dodo_colas = new Partition("fais_dodo", "Inconnu", 0, "Fais dodo est une berceuse enfantine en langue française dont l'auteur est inconnu et est dans le domaine public. La mélodie, très connue, date du XVIIIe siècle et se chante dans toutes les régions de France et également au Québec. Il y a quelques variantes, où les ingrédients du texte changent : nougat au lieu de chocolat, d'autres fois des bateaux : « Papa est en haut qui fait des bateaux pour le p'tit Pierrot qui fait son dodo... » ", "piano", "fais_dodo_colas.png", "fais-dodo-colas-mon-petit-frere.mid");
Partition Frere_Jacques = new Partition("Frère_Jacques", "Jean-Philippe Rameau", 0, "Frère Jacques est une chanson enfantine française du XVIIIe siècle, connue dans le monde entier et traduite dans de nombreuses langues. Longtemps considérée comme anonyme, elle a vraisemblablement pour auteur Jean-Philippe Rameau. Selon l'historienne et musicologue Sylvie Bouissou, l'auteur de la chanson n'est autre que Jean-Philippe Rameau1,2. En effet, dans un exemplaire de son ouvrage Diapason général de tous les instruments à vent (1772), Louis-Joseph Francœur, violoniste de l'Opéra de Paris dans les années où Rameau y était actif, a inséré les manuscrits de quatre canons qu'il attribue à Rameau, parmi lesquels on trouve donc Frère Jacques, mais surtout deux autres déjà connus comme étant de Rameau;", "piano", "frere_jacques.png", "frere-jacques.mid");
favoris.Add(amazing_grace);
favoris.Add(au_clair_de_la_lune);
favoris.Add(aura_lee_love_me);
favoris.Add(ode_a_la_joie);
favoris.Add(fais_dodo_colas);
favoris.Add(Frere_Jacques);
return (favoris, utilisateurs);
}
public void sauvegardeDonnees(List<Partition> p, List<Utilisateur> u)
{
}
}
}

@ -2,83 +2,78 @@
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="MusiLib.Views.Favoris"
xmlns:model="clr-namespace:MusiLib.Model"
Title="Favoris"
BackgroundColor="White">
<ScrollView>
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<ScrollView>
<Grid x:Name="grille">
<Grid.RowDefinitions >
<RowDefinition Height="85"/>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Rectangle Grid.Row="0" Grid.Column="0"
BackgroundColor="#64C1FF"
WidthRequest="650"
HeightRequest="65"
VerticalOptions="Start"
HorizontalOptions="Start"
/>
<Rectangle Grid.Row="0" Grid.Column="0"
BackgroundColor="#64C1FF"
WidthRequest="650"
HeightRequest="65"
VerticalOptions="Start"
HorizontalOptions="Start"
/>
<ImageButton Grid.Row="0" Grid.Column="0"
Source="logo.png"
WidthRequest="60"
HeightRequest="60"
VerticalOptions="Start"
HorizontalOptions="Start"
Clicked="GoToAccueilByLogoButton"
/>
<ImageButton Grid.Row="0" Grid.Column="0"
Source="logo.png"
WidthRequest="60"
HeightRequest="60"
VerticalOptions="Start"
HorizontalOptions="Start"
Clicked="GoToAccueilByLogoButton"
/>
<SearchBar Grid.Row="0" Grid.Column="1"
WidthRequest="175"
MaximumWidthRequest="175"
VerticalOptions="Start"
HorizontalOptions="Center"
Margin="40,5,0,0"
TextColor="White"
CancelButtonColor="White"
Placeholder="Rechercher ..."
PlaceholderColor="White"
VerticalTextAlignment="Center"
HorizontalTextAlignment="Start"
/>
<SearchBar Grid.Row="0" Grid.Column="1"
WidthRequest="175"
MaximumWidthRequest="175"
VerticalOptions="Start"
HorizontalOptions="Center"
Margin="40,5,0,0"
TextColor="White"
CancelButtonColor="White"
Placeholder="Rechercher ..."
PlaceholderColor="White"
VerticalTextAlignment="Center"
HorizontalTextAlignment="Start"
/>
<Image Grid.Row="0" Grid.Column="2"
Source="tri.png"
WidthRequest="60"
HeightRequest="60"
VerticalOptions="Start"
HorizontalOptions="Center"
Margin="100,0,0,0"
/>
<Image Grid.Row="0" Grid.Column="2"
Source="tri.png"
WidthRequest="60"
HeightRequest="60"
VerticalOptions="Start"
HorizontalOptions="Center"
Margin="100,0,0,0"
/>
<Image Grid.Row="0" Grid.Column="3"
Source="etoile.png"
WidthRequest="50"
HeightRequest="50"
Margin="0,5,0,0"
VerticalOptions="Start"
HorizontalOptions="End"
/>
<Button Grid.Row="1" Grid.Column="0"
WidthRequest="75"
HeightRequest="75"
BackgroundColor="Blue"
Clicked="GoToPartitionButton"/>
<ImageButton Grid.Row="0" Grid.Column="3"
Source="etoile.png"
WidthRequest="50"
HeightRequest="50"
Margin="0,5,0,0"
VerticalOptions="Start"
HorizontalOptions="End"
/>
</Grid>
</ScrollView>
</ContentPage>
</ContentPage>

@ -1,13 +1,20 @@
using MusiLib.Model;
using System.Diagnostics;
namespace MusiLib.Views;
public partial class Favoris : ContentPage, IAllowClick
{
public Favoris()
public Manager MyManager => (App.Current as App).MyManager;
public Favoris()
{
InitializeComponent();
}
chargerFavoris();
}
private void GoToAccueilByLogoButton(object sender, EventArgs e)
@ -26,8 +33,65 @@ public partial class Favoris : ContentPage, IAllowClick
if (!IAllowClick.AllowTap) return;
else IAllowClick.AllowTap = false;
Navigation.PushAsync(new Partition());
var button = (ImageButton)sender;
var idAutomation = button.AutomationId;
if (int.TryParse(idAutomation, out int id))
{
Navigation.PushAsync(new Partition(id));
}
IAllowClick.ResumeTap();
}
private void chargerFavoris()
{
int imagesParLigne = 3;
int indice = 0;
for (int i = 0; i < Utilisateur.Favoris.Count; i++)
{
Model.Partition favoris = Utilisateur.Favoris[i];
ImageButton imageButton = new ImageButton
{
Source = favoris.Image,
WidthRequest = 175,
HeightRequest = 175,
AutomationId = indice.ToString(),
};
imageButton.Clicked += GoToPartitionButton;
int ligne = 1 + (indice / imagesParLigne);
int colonne = indice % imagesParLigne;
imageButton.Margin = GetImageButtonMargin(colonne);
Grid.SetRow(imageButton, ligne);
Grid.SetColumn(imageButton, colonne);
grille.Children.Add(imageButton);
indice++;
}
}
private Thickness GetImageButtonMargin(int colonne)
{
if (colonne == 0)
{
return new Thickness(30, 0, 0, 0);
}
else if (colonne == 1)
{
return new Thickness(90, 0, 0, 0);
}
else
{
return new Thickness(150, 0, 0, 0);
}
}
}

@ -8,9 +8,9 @@ namespace MusiLib.Views
static bool isMusicPlaying = false;
static bool isMusicBeginning = false;
public static async void beginMusic()
public static async void beginMusic(string son)
{
player = (AudioPlayer)AudioManager.Current.CreatePlayer(await FileSystem.OpenAppPackageFileAsync("au_clair_de_la_lune.wav"));
player = (AudioPlayer)AudioManager.Current.CreatePlayer(await FileSystem.OpenAppPackageFileAsync(son));
player.Play();
isMusicPlaying = true;
isMusicBeginning = true;

@ -51,10 +51,11 @@
HorizontalOptions="Start"
/>
<Button Grid.Row="3" Grid.Column="1"
Text="D"
Text="Mettre en favori"
WidthRequest="75"
HeightRequest="75"
HorizontalOptions="Start"
Clicked="AddFavoriButton"
/>
<Button Grid.Row="5" Grid.Column="0"
Text="Jouer"

@ -32,7 +32,7 @@ public partial class Partition : ContentPage
Button button = (Button)sender;
if (!IPlayMusic.isMusicBeginning)
{
IPlayMusic.beginMusic();
IPlayMusic.beginMusic(MyManager.partitions[IdTab].Son);
button.Text = "Pause";
}
else if(!IPlayMusic.isMusicPlaying)
@ -79,4 +79,16 @@ public partial class Partition : ContentPage
IPlayMusic.stopMusic();
}
}
private void AddFavoriButton(object sender, EventArgs e)
{
if (!Utilisateur.Favoris.Contains(MyManager.partitions[IdTab]))
{
Utilisateur.Favoris.Add(MyManager.partitions[IdTab]);
}
else
{
Utilisateur.Favoris.Remove(MyManager.partitions[IdTab]);
}
}
}

Loading…
Cancel
Save