Junio 20, 2018, 05:26:46 am

Autor Tema: [C#] DH Player 1.0  (Leído 1627 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado BigBear

  • Yo vivo en CPH
  • ***
  • Mensajes: 736
  • Sexo: Masculino
    • Ver Perfil
[C#] DH Player 1.0
« en: Marzo 13, 2015, 08:16:39 am »
Este vez les traigo un reproductor de musica y peliculas que hice en C# usando WPF con las siguientes opciones :

  • Reproduce musica y videos a pantalla completa
  • Soporta Drag and Drop para reproducir canciones y videos
  • Pueden subir volumen y poner la posicion que quieran
  • Tienen opcion para repetir una cancion o reproducir una carpeta entera automaticamente
  • Pueden poner mute


* Formatos de musica soportados : mp3,m4a,wma
* Formato de videos soportados : avi,mp4,flv,mkv,wmv,mpg

Una imagen :



El codigo

Código: (csharp) You are not allowed to view links. Register or Login
// DH Player 1.0
// (C) Doddy Hackman 2015
// Credits :
// Based on : MP3 Happy Hard Core Player V 1.0 By Steel Karpov
// Thanks to Steel Karpov

using System;
using System.Collections.Generic;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using Microsoft.Win32;
using System.IO;
using System.Windows.Threading;
using System.Text.RegularExpressions;

namespace DH_Player
{
    /// <summary>
    /// Lógica de interacción para MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        DispatcherTimer control_del_tiempo;
        bool escribiendo;
        bool enalgo;
        bool repeat;
        bool automatic;
        bool pantalla_completa = false;

        public MainWindow()
        {
            InitializeComponent();

            control_del_tiempo = new DispatcherTimer();
            control_del_tiempo.Interval = TimeSpan.FromSeconds(1);
            control_del_tiempo.Tick += new EventHandler(timer_Tick);
            escribiendo = false;
        }

        private void timer_Tick(object sender, EventArgs e)
        {
            if (!escribiendo)
            {
                linea.Value = player.Position.TotalSeconds;
            }
        }

        private void retroceder_MouseUp(object sender, MouseButtonEventArgs e)
        {
            if (lista.SelectedIndex != -1)
            {
                cancion_anterior();
            }
        }

        private void play_MouseUp(object sender, MouseButtonEventArgs e)
        {
            if (lista.SelectedIndex != -1)
            {
                enalgo = true;
                player.Play();
            }
        }

        private void pause_MouseUp(object sender, MouseButtonEventArgs e)
        {
            if (lista.SelectedIndex != -1)
            {
                player.Pause();
                enalgo = false;
            }
        }

        private void avanzar_MouseUp(object sender, MouseButtonEventArgs e)
        {
            if (lista.SelectedIndex != -1)
            {
                cancion_siguiente();
            }
        }

        private void nombres_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            if (lista.SelectedIndex != -1)
            {
                enalgo = false;
                start_music();
            }
        }

        private void start_music()
        {

            if (enalgo == true)
            {
                player.Play();
            }
            else
            {

                ListBoxItem ruta1 = (ListBoxItem)lista.SelectedItem;
                string ruta = ruta1.Tag.ToString();
                player.Position = TimeSpan.Zero;
                player.LoadedBehavior = MediaState.Manual;
                player.UnloadedBehavior = MediaState.Stop;
                player.Source = new Uri(ruta);
                linea.Value = 0;
                player.Play();
            }
        }

        private void cancion_siguiente()
        {
            enalgo = false;

            try
            {

                if (lista.SelectedIndex + 1 < lista.Items.Count)
                {
                    lista.SelectedItem = lista.Items.GetItemAt(lista.SelectedIndex + 1);
                    start_music();
                }

            }

            catch
            {
                //
            }
        }

        private void cancion_anterior()
        {
            enalgo = false;

            try
            {

                if (lista.SelectedIndex - 1 < lista.Items.Count)
                {
                    lista.SelectedItem = lista.Items.GetItemAt(lista.SelectedIndex - 1);
                    start_music();
                }

            }

            catch
            {
                //
            }
        }

        private void volumen_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
        {
            try
            {
                player.Volume = volumen.Value;
            }
            catch
            {
                //
            }
        }

        private void player_MouseDown(object sender, MouseButtonEventArgs e)
        {

            int width_screen = 1400;
            int height_screen = 800;

            int width_original = 483;
            int height_original = 372;

            if (e.ClickCount == 2 && pantalla_completa == false)
            {
                player.MinHeight = height_screen;
                player.MinWidth = width_screen;

                volumen.Visibility = Visibility.Hidden;
                linea.Visibility = Visibility.Hidden;
                play.Visibility = Visibility.Hidden;
                pause.Visibility = Visibility.Hidden;
                avanzar.Visibility = Visibility.Hidden;
                retroceder.Visibility = Visibility.Hidden;
                contenedor1.Visibility = Visibility.Hidden;
                contenedor2.Visibility = Visibility.Hidden;
                lista.Visibility = Visibility.Hidden;
                menu1.Visibility = Visibility.Hidden;
                progreso.Visibility = Visibility.Hidden;
                this.WindowStyle = WindowStyle.None;
                this.WindowState = WindowState.Maximized;

                pantalla_completa = true;

            }
            else
            {

                if (e.ClickCount == 2 && pantalla_completa == true)
                {
                    player.MinHeight = height_original;
                    player.MinWidth = width_original;

                    volumen.Visibility = Visibility.Visible;
                    linea.Visibility = Visibility.Visible;
                    play.Visibility = Visibility.Visible;
                    pause.Visibility = Visibility.Visible;
                    avanzar.Visibility = Visibility.Visible;
                    retroceder.Visibility = Visibility.Visible;
                    contenedor1.Visibility = Visibility.Visible;
                    contenedor2.Visibility = Visibility.Visible;
                    lista.Visibility = Visibility.Visible;
                    menu1.Visibility = Visibility.Visible;
                    progreso.Visibility = Visibility.Visible;
                    this.WindowStyle = WindowStyle.SingleBorderWindow;
                    this.WindowState = WindowState.Normal;

                    pantalla_completa = false;

                }
            }

        }

        private void player_MediaOpened(object sender, RoutedEventArgs e)
        {

            enalgo = true;

            if (player.NaturalDuration.HasTimeSpan)
            {
                TimeSpan ts = player.NaturalDuration.TimeSpan;
                linea.Maximum = ts.TotalSeconds;
                linea.SmallChange = 1;
            }

            control_del_tiempo.Start();
        }

        private void player_MediaEnded(object sender, RoutedEventArgs e)
        {
            linea.Value = 0;
            enalgo = false;
            if (repeat == true)
            {
                start_music();
            }
            if (automatic == true)
            {
                cancion_siguiente();
            }
        }

        private void linea_DragStarted(object sender, System.Windows.Controls.Primitives.DragStartedEventArgs e)
        {
            escribiendo = true;
        }

        private void linea_DragCompleted(object sender, System.Windows.Controls.Primitives.DragCompletedEventArgs e)
        {
            escribiendo = false;
            player.Position =
                TimeSpan.FromSeconds(linea.Value);
        }

        private void linea_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
        {
            player.Position = TimeSpan.FromSeconds(linea.Value);
        }

        private void linea_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
        {
            try
            {
                string tiempo = TimeSpan.FromSeconds(linea.Value).ToString();
                int cantidad = (int)player.NaturalDuration.TimeSpan.TotalSeconds;

                TimeSpan tiempo_final = TimeSpan.FromSeconds(cantidad);

                Match regex = Regex.Match(tiempo, @"(.*)\.(.*)", RegexOptions.IgnoreCase);
                if (regex.Success)
                {
                    progreso.Content = regex.Groups[1].Value + " / " + tiempo_final;
                }
            }
            catch
            {
                //
            }
        }

        private void nombres_DragEnter(object sender, DragEventArgs e)
        {
            if (e.Data.GetDataPresent(DataFormats.FileDrop))
            {
                e.Effects = DragDropEffects.Copy;
            }
            else
            {
                e.Effects = DragDropEffects.None;
            }
        }

        private void nombres_Drop(object sender, DragEventArgs e)
        {
            List<string> archivos = new List<string>((string[])e.Data.GetData(DataFormats.FileDrop));
            foreach (string archivo in archivos)
            {
                string nombre = System.IO.Path.GetFileNameWithoutExtension(archivo);
                string extension = System.IO.Path.GetExtension(archivo);
                if (extension == ".mp3" || extension == ".avi" || extension==".m4a" || extension==".wma" || extension==".mp4" || extension==".flv" || extension==".mkv" || extension==".wmv" || extension==".mpg")
                {
                    ListBoxItem item1 = new ListBoxItem();
                    item1.Content = nombre;
                    item1.Tag = archivo;
                    lista.Items.Add(item1);
                }
            }
        }

        private void MenuItem_Click(object sender, RoutedEventArgs e)
        {
            OpenFileDialog openFileDialog1 = new OpenFileDialog();
            openFileDialog1.Filter = "MP3 (.mp3)|*.mp3|M4A (.m4a)|*.m4a|WMA (.wma)|*.m4a";
            openFileDialog1.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyMusic);
            openFileDialog1.Multiselect = true;
            openFileDialog1.Title = "Select Song";
            Nullable<bool> result = openFileDialog1.ShowDialog();
            if (result == true)
            {

                string[] archivos = openFileDialog1.FileNames;
                foreach (string archivo in archivos)
                {
                    string nombre = System.IO.Path.GetFileNameWithoutExtension(archivo);
                    ListBoxItem item1 = new ListBoxItem();
                    item1.Content = nombre;
                    item1.Tag = archivo;
                    lista.Items.Add(item1);
                }
            }
        }

        private void MenuItem_Click_1(object sender, RoutedEventArgs e)
        {
            OpenFileDialog openFileDialog1 = new OpenFileDialog();
            openFileDialog1.Filter = "MP3 (.mp3)|*.mp3|M4A (.m4a)|*.m4a|WMA (.wma)|*.m4a";
            openFileDialog1.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyMusic);
            openFileDialog1.Multiselect = true;
            openFileDialog1.Title = "Select Song";
            Nullable<bool> result = openFileDialog1.ShowDialog();
            if (result == true)
            {
                string directorio = System.IO.Path.GetDirectoryName(openFileDialog1.FileName);
                string[] archivos = Directory.GetFiles(directorio);
                foreach (string archivo in archivos)
                {
                    string extension = System.IO.Path.GetExtension(archivo);
                    if (extension == ".mp3" || extension == ".m4a" || extension==".wma")
                    {
                        string nombre = System.IO.Path.GetFileNameWithoutExtension(archivo);
                        ListBoxItem item1 = new ListBoxItem();
                        item1.Content = nombre;
                        item1.Tag = archivo;
                        lista.Items.Add(item1);
                    }
                }
            }
        }

        private void MenuItem_Click_2(object sender, RoutedEventArgs e)
        {
            OpenFileDialog openFileDialog1 = new OpenFileDialog();
            openFileDialog1.Filter = "avi (.avi)|*.avi|mp4 (.mp4)|*.mp4|flv (.flv)|*.flv|mkv (.mkv)|*.mkv|wmv (.wmv)|*.wmv|mpg (.mpg)|*.mpg";
            openFileDialog1.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyMusic);
            openFileDialog1.Multiselect = true;
            openFileDialog1.Title = "Select Video";
            Nullable<bool> result = openFileDialog1.ShowDialog();
            if (result == true)
            {
                string[] archivos = openFileDialog1.FileNames;
                foreach (string archivo in archivos)
                {
                    string nombre = System.IO.Path.GetFileNameWithoutExtension(archivo);
                    ListBoxItem item1 = new ListBoxItem();
                    item1.Content = nombre;
                    item1.Tag = archivo;
                    lista.Items.Add(item1);
                }
            }
        }

        private void MenuItem_Click_3(object sender, RoutedEventArgs e)
        {
            OpenFileDialog openFileDialog1 = new OpenFileDialog();
            openFileDialog1.Filter = "avi (.avi)|*.avi|mp4 (.mp4)|*.mp4|flv (.flv)|*.flv|mkv (.mkv)|*.mkv|wmv (.wmv)|*.wmv|mpg (.mpg)|*.mpg";
            openFileDialog1.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyMusic);
            openFileDialog1.Multiselect = true;
            openFileDialog1.Title = "Select Videos";
            Nullable<bool> result = openFileDialog1.ShowDialog();
            if (result == true)
            {
                string directorio = System.IO.Path.GetDirectoryName(openFileDialog1.FileName);
                string[] archivos = Directory.GetFiles(directorio);
                foreach (string archivo in archivos)
                {
                    string extension = System.IO.Path.GetExtension(archivo);
                    if (extension == ".avi" || extension==".mp4" || extension ==".flv" || extension==".mkv" || extension ==".wmv" || extension==".mpg")
                    {
                        string nombre = System.IO.Path.GetFileNameWithoutExtension(archivo);
                        ListBoxItem item1 = new ListBoxItem();
                        item1.Content = nombre;
                        item1.Tag = archivo;
                        lista.Items.Add(item1);
                    }
                }
            }
        }

        private void MenuItem_Click_4(object sender, RoutedEventArgs e)
        {
            repeat = true;
        }

        private void MenuItem_Click_5(object sender, RoutedEventArgs e)
        {
            repeat = false;
        }

        private void MenuItem_Click_6(object sender, RoutedEventArgs e)
        {
            automatic = true;
        }

        private void MenuItem_Click_7(object sender, RoutedEventArgs e)
        {
            automatic = false;
        }

        private void MenuItem_Click_10(object sender, RoutedEventArgs e)
        {
            player.IsMuted = true;
        }

        private void MenuItem_Click_11(object sender, RoutedEventArgs e)
        {
            player.IsMuted = false;
        }

        private void MenuItem_Click_8(object sender, RoutedEventArgs e)
        {
            MessageBox.Show("Written By Doddy Hackman in the summer of 2015");
        }

        private void MenuItem_Click_9(object sender, RoutedEventArgs e)
        {
            Application.Current.Shutdown();
        }

        private void MenuItem_Click_12(object sender, RoutedEventArgs e)
        {
            lista.Items.Clear();
        }

    }
}

// The End ?

Si quieren bajar el programa lo pueden hacer de aca :

You are not allowed to view links. Register or Login.
You are not allowed to view links. Register or Login.

Eso es todo.


xx
Player

Iniciado por laz0911

0 Respuestas
1521 Vistas
Último mensaje Agosto 06, 2011, 10:51:41 pm
por laz0911
exclamation
[Perl] DH Player

Iniciado por BigBear

0 Respuestas
738 Vistas
Último mensaje Enero 18, 2011, 01:53:25 pm
por BigBear
exclamation
[Perl Tk] DH Player

Iniciado por BigBear

0 Respuestas
692 Vistas
Último mensaje Mayo 26, 2011, 07:09:08 pm
por BigBear
exclamation
[Delphi] DH Player 0.5

Iniciado por BigBear

0 Respuestas
555 Vistas
Último mensaje Febrero 28, 2014, 09:35:14 am
por BigBear
exclamation
[Delphi] DH Player 0.1

Iniciado por BigBear

0 Respuestas
615 Vistas
Último mensaje Mayo 13, 2013, 03:36:09 pm
por BigBear
exclamation
Ejecución de código en VLC Player

Iniciado por WaesWaes

2 Respuestas
842 Vistas
Último mensaje Marzo 29, 2011, 09:35:04 am
por Sr_X
xx
windows media player

Iniciado por el@vivo

1 Respuestas
1063 Vistas
Último mensaje Junio 24, 2009, 08:19:06 pm
por DarkProgrammer
question
Ayuda con Flash Player

Iniciado por Jairus

1 Respuestas
861 Vistas
Último mensaje Mayo 23, 2013, 09:31:30 pm
por M4inFox
exclamation
Vulnerabilidades en VLC Media Player

Iniciado por wanm28

5 Respuestas
1053 Vistas
Último mensaje Febrero 05, 2011, 12:56:08 am
por wanm28
question
bakctrack y flash player

Iniciado por lleida970

2 Respuestas
1113 Vistas
Último mensaje Octubre 08, 2011, 11:33:00 am
por lleida970