classe métronome terminé, reste ajout des boutons pour le métronome

pull/8/head
Maxime ANDRE-MASSE 2 years ago
parent 95dd38419b
commit a5365f8f09

@ -3,36 +3,43 @@ using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading.Tasks;
using Microsoft.Maui.Controls;
namespace MusiLib.Model
{
public class Metronome
{
/*static AudioPlayer player;
static bool isMusicPlaying = false;
static bool isMusicBeginning = false;
public AudioPlayer player;
public bool isMusicPlaying;
public bool isMusicBeginning;
public static async void beginMusic()
public Metronome()
{
player = (AudioPlayer)AudioManager.Current.CreatePlayer(await FileSystem.OpenAppPackageFileAsync("au_clair_de_la_lune.wav"));
player.Play();
isMusicPlaying = true;
isMusicBeginning = true;
player = DependencyService.Get<AudioPlayer>();
isMusicPlaying = false;
}
public static void playMusic()
{
player.Play();
isMusicPlaying = true;
public async Task Lancer(string cheminFichier)
{
var fichierAudio = (AudioPlayer)AudioManager.Current.CreatePlayer(await FileSystem.OpenAppPackageFileAsync(cheminFichier));
player = fichierAudio;
player.Play();
isMusicPlaying=true;
isMusicBeginning =true;
}
public static void pauseMusic()
public void PlayMusic()
{
player.Play();
isMusicPlaying = true;
}
public void PauseMusic()
{
player.Pause();
isMusicPlaying = false;
}
public static void stopMusic()
public void StopMusic()
{
if (isMusicBeginning)
{
@ -40,7 +47,11 @@ namespace MusiLib.Model
isMusicPlaying = false;
isMusicBeginning = false;
}
}*/
}
public void ReglerTempo(float tempo)
{
player.Speed = tempo;
}
}
}

@ -1,47 +0,0 @@
using Plugin.Maui.Audio;
namespace MusiLib.Views
{
public interface IPlayMusic
{
static AudioPlayer player;
static bool isMusicPlaying = false;
static bool isMusicBeginning = false;
public static async void beginMusic(string son)
{
player = (AudioPlayer)AudioManager.Current.CreatePlayer(await FileSystem.OpenAppPackageFileAsync(son));
player.Play();
isMusicPlaying = true;
isMusicBeginning = true;
}
public static void playMusic()
{
player.Play();
isMusicPlaying = true;
}
public static void pauseMusic()
{
player.Pause();
isMusicPlaying = false;
}
public static void stopMusic()
{
if(isMusicBeginning)
{
player.Stop();
isMusicPlaying = false;
isMusicBeginning = false;
}
}
public static void reglerTempo(float tempo)
{
player.Speed = tempo;
}
}
}

@ -11,6 +11,8 @@ public partial class PartitionView : ContentPage
public Manager MyManager => (App.Current as App).MyManager;
public Metronome music = new Metronome();
public Metronome metronome = new Metronome();
public int IdTab { get; set; }
@ -32,41 +34,65 @@ public partial class PartitionView : ContentPage
private void Play_Music(object sender, EventArgs e)
{
Button button = (Button)sender;
if (!music.isMusicBeginning)
{
_ = music.Lancer(MyManager.partitions[IdTab].Son);
button.Text = "Pause";
}
else if(!music.isMusicPlaying)
{
music.PlayMusic();
button.Text = "Pause";
}
else
{
music.PauseMusic();
button.Text = "Jouer";
}
}
private void Play_Metronome(object sender, EventArgs e)
{
Button button = (Button)sender;
if (!IPlayMusic.isMusicBeginning)
if (!metronome.isMusicBeginning)
{
IPlayMusic.beginMusic(MyManager.partitions[IdTab].Son);
_ = metronome.Lancer(MyManager.partitions[IdTab].Son);
button.Text = "Pause";
}
else if(!IPlayMusic.isMusicPlaying)
else if (!metronome.isMusicPlaying)
{
IPlayMusic.playMusic();
metronome.PlayMusic();
button.Text = "Pause";
}
else
{
IPlayMusic.pauseMusic();
metronome.PauseMusic();
button.Text = "Jouer";
}
}
private void Stop_Music(object sender, EventArgs e)
{
IPlayMusic.stopMusic();
music.StopMusic();
Button button = (Button)FindByName("play_music_button");
button.Text = "Jouer";
}
protected override bool OnBackButtonPressed()
{
IPlayMusic.stopMusic();
metronome.StopMusic();
music.StopMusic();
return base.OnBackButtonPressed();
}
protected override void OnDisappearing()
{
base.OnDisappearing();
IPlayMusic.stopMusic();
metronome.StopMusic();
music.StopMusic();
}
protected override void OnAppearing()
@ -79,7 +105,8 @@ public partial class PartitionView : ContentPage
{
if (e.Source == ShellNavigationSource.ShellItemChanged)
{
IPlayMusic.stopMusic();
metronome.StopMusic();
music.StopMusic();
}
}
@ -116,6 +143,6 @@ public partial class PartitionView : ContentPage
private void TempoSlider(object sender, ValueChangedEventArgs e)
{
float selectedValue = (float)e.NewValue;
IPlayMusic.reglerTempo(selectedValue);
music.ReglerTempo(selectedValue);
}
}

Loading…
Cancel
Save