Exemple #1
0
        static void PrintCurrentTime()
        {
            while (state.Equals(PlaybackState.Playing))
            {
                Console.Clear();
                PlaybackUsage(24);
                ShowPlaylist(songsList);

                //for(int i = 0; i < (long)reader.TotalTime.Seconds; i++)
                //{
                Console.WriteLine("{0}:{1}:{2}", reader.CurrentTime.Hours, reader.CurrentTime.Minutes, reader.CurrentTime.Seconds);
                //Console.Write(">");
                Thread.Sleep(1000);
                //}
                //Console.WriteLine();
            }
        }
Exemple #2
0
        static void Main(string[] args)
        {
            //Basic User Interface init
            MainPage();

            //songs list. Add songs to the song list;
            songsList = new List <string>();
            songsList.Clear();
            CreateSongList(songsList);

            //song name
            songName = "";

            //songs quantity;
            int songQuantity = songsList.Count();


            //select option flags;
            string option = "";

            isSelected = false;

            //song selector
            string getNum = "";

            songNum = 0;
            string getOpt = "";

            isLegalNum = false;


            //create waveoutEvent
            waveOut = new WaveOutEvent();
            waveOut.PlaybackStopped += OnPlaybackStopped;

            //player Manager;


            //AUTORESETEVENT

            playMode = false;

            orderLoopMode = false;



            //program running state;
            bool isRunning = false;

            //start program
            isRunning = true;

            while (isRunning) //Main loop
            {
                while (!isSelected)
                {
                    option = Console.ReadLine();

                    switch (option)
                    {
                    case "1":
                        Console.Clear();
                        PlaybackUsage(songQuantity);
                        ShowPlaylist(songsList);
                        isSelected = true;
                        //isLegalNum = false;

                        break;

                    case "2":
                        isSelected = true;

                        break;

                    case "q":
                        isSelected = true;

                        isRunning = false;
                        Environment.Exit(0);
                        break;

                    default:
                        printErrors(ERRORS.ERRORS_OPTION_IS_ILLEGAL);
                        isSelected = false;
                        option     = "";
                        break;
                    }
                }

                isSelected = false;


                /*opton 1*/
                while (option.Equals("1"))
                {
                    //1.show play list
                    //2.init the function of playing music
                    while (!isSelected)
                    {
                        getNum = Console.ReadLine();


                        switch (getNum)
                        {
                        case "b":
                            option = "";
                            GoMainPage();
                            isSelected = true;
                            isLegalNum = false;
                            break;

                        case "o":
                            Console.WriteLine("Enable list loop mode.");

                            orderLoopMode = true;
                            isLegalNum    = true;
                            isSelected    = true;
                            songNum       = 1;
                            break;

                        case "p":
                            isSelected = true;
                            isLegalNum = true;
                            if (songNum == 0)
                            {
                                songNum = 1;
                            }
                            break;

                        default:
                            if (int.TryParse(getNum, out songNum))
                            {
                                songNum = int.Parse(getNum);
                                if (songNum <= 0)
                                {
                                    printErrors(ERRORS.ERRORS_OPTION_IS_LOWER_THAN_ZERO);
                                    isSelected = false;
                                    //selectError = true;
                                }
                                else if (songNum > songQuantity)
                                {
                                    printErrors(ERRORS.ERRORS_OPTION_IS_LARGER_THAN_SONGS_QUANTITY);
                                    isSelected = false;
                                    //selectError = true;
                                }
                                else
                                {
                                    isSelected = true;
                                    isLegalNum = true;;
                                    //getOpt = "p";
                                }
                            }
                            else
                            {
                                printErrors(ERRORS.ERRORS_OPTION_IS_ILLEGAL);

                                isSelected = false;
                                //selectError = true;
                            }
                            //Console.WriteLine("default is over");
                            break;
                        }

                        //Console.WriteLine("new area");
                    } // while(!isSelected);
                      //getNum = "";

                    if (isLegalNum)
                    {
                        songName = songsList[songNum - 1].Substring(9);
                        state    = PlaybackState.Stopped;

                        Thread thread = new Thread(PrintCurrentTime);

                        /*if(waveOut == null)
                         * {
                         *  waveOut = new WaveOutEvent();
                         *  waveOut.PlaybackStopped += OnPlaybackStopped;
                         *
                         * }*/
                        reader = new MediaFoundationReader(songsList[songNum - 1]);
                        waveOut.Init(reader);
                        playMode = true;
                        getOpt   = "p";
                        PrintSign(50, "-");
                        while (playMode)
                        {
                            if (getOpt.Equals(""))
                            {
                                getOpt = Console.ReadLine();
                            }


                            switch (getOpt)
                            {
                            case "b":
                                Console.Clear();
                                waveOut.Stop();
                                if (reader != null)
                                {
                                    reader.Dispose();
                                    reader = null;
                                }
                                if (waveOut != null)
                                {
                                    waveOut.Dispose();
                                    //waveOut = null;
                                }
                                GoMainPage();
                                isSelected = true;
                                isLegalNum = false;
                                playMode   = false;
                                songNum    = 0;
                                getNum     = "";
                                option     = "";
                                break;

                            case "c":
                                Console.Clear();
                                PlaybackUsage(songQuantity);
                                ShowPlaylist(songsList);
                                break;

                            case "o":

                                if (!orderLoopMode)
                                {
                                    orderLoopMode = true;
                                    Console.WriteLine("Enable list loop mode.");
                                }
                                else
                                {
                                    orderLoopMode = false;
                                    Console.WriteLine("Disable list loop mode.");
                                }

                                //songNum = 1;
                                break;

                            case "p":
                                if (!state.Equals(PlaybackState.Playing))
                                {
                                    waveOut.Play();
                                    state = PlaybackState.Playing;


                                    Console.WriteLine("Playing: {0} Total time: {1}:{2}:{3}", songName, reader.TotalTime.Hours, reader.TotalTime.Minutes, reader.TotalTime.Seconds);
                                    if (thread.ThreadState.Equals(ThreadState.Unstarted))
                                    {
                                        thread.Start();
                                    }
                                    else if (thread.ThreadState.Equals(ThreadState.Stopped))
                                    {
                                        thread = new Thread(PrintCurrentTime);
                                        thread.Start();
                                    }
                                }


                                break;

                            case "s":
                                state         = PlaybackState.Stopped;
                                orderLoopMode = false;
                                waveOut.Stop();
                                if (reader != null)
                                {
                                    reader.Dispose();

                                    reader = null;
                                }
                                if (waveOut != null)
                                {
                                    waveOut.Dispose();
                                    //waveOut = null;
                                }


                                Console.Clear();
                                PlaybackUsage(songQuantity);
                                ShowPlaylist(songsList);
                                Console.WriteLine("Stopped: {0}.", songName);


                                playMode   = false;
                                isSelected = false;
                                //songNum = 0;
                                getNum = "";

                                break;

                            case "h":
                                if (state.Equals(PlaybackState.Playing))
                                {
                                    waveOut.Pause();
                                    state = PlaybackState.Paused;
                                    Console.WriteLine("Paused: {0}.", songName);
                                }

                                break;

                            default:

                                if (int.TryParse(getOpt, out songNum))
                                {
                                    waveOut.Stop();
                                    if (waveOut != null)
                                    {
                                        waveOut.Dispose();
                                        //waveOut = null;
                                    }

                                    if (reader != null)
                                    {
                                        reader.Dispose();
                                        reader = null;
                                    }


                                    int tempSongNum = int.Parse(getOpt);
                                    if (!(tempSongNum < 0) && !(tempSongNum > songQuantity))
                                    {
                                        songNum = tempSongNum;
                                        reader  = new MediaFoundationReader(songsList[songNum - 1]);
                                    }
                                    playMode   = false;
                                    isSelected = true;
                                }
                                else
                                {
                                    printErrors(ERRORS.ERRORS_OPTION_IS_ILLEGAL);
                                    Console.WriteLine("Please try again.");
                                }
                                break;
                            }

                            //Console.WriteLine(reader.TotalTime.Subtract(reader.CurrentTime));

                            getOpt = "";

                            /*if (autoplay)
                             * {
                             *  Thread.Sleep(1000*30);
                             *
                             *  getOpt = "p";
                             * }*/
                        }
                    }
                } //while option == 1
            }     //isRunning



            Console.ReadLine();
            Console.ReadLine();
        }