Как воспроизводить mp3 через определенные промежутки времени - C#

Узнай цену своей работы

Формулировка задачи:

Допустим, есть кнопка button1. Как сделать так, что бы после нажатия на неё через определённые промежутки времени воспроизводился определённый файл mp3? Например,
Пауза n мс (n записано в переменной pause1) Воспроизвести файл 1.mp3 Пауза m мс (m записано в переменной pause2) Воспроизвести файл 2.mp3 и т.п.
При этом нужно, что кнопки интерфейса оставались активными и работали.

Решение задачи: «Как воспроизводить mp3 через определенные промежутки времени»

textual
Листинг программы
 public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            PlayList tracks = new PlayList();
            tracks.GetAdress();
            int interruptionTime = 5000;
            while (true)
            {
 
                tracks.Play();
                Thread.Sleep(interruptionTime);
                tracks.Next();
                Thread.Sleep(interruptionTime);
            }
        }
    }
 
 
 
    //===========================================================================================================
 
 
    public class PlayList
    {
        private string[] soundAdress;
        private string[] soundNames;
        private int Count;
        private int currentTrack;
        private Audio player;
        private int trackTime;
        public int TrackTime
        {
            get
            {
                return trackTime;
            }
        }
        public int CurrentTrak
        {
            get
            {
                return currentTrack;
            }
        }
        /// <summary>
        /// Количество треков в плейлисте
        /// </summary>
 
        public int TrackCount
        {
            get
            {
                return Count;
            }
 
        }
        public string[] TrackInList
        {
            get
            {
                string[] TrackList = new string[Count];
                for (int i = 0; i < Count; i++)
                {
                    TrackList[i] = soundNames[i];
                }
 
                return TrackList;
            }
 
        }
 
 
 
        public PlayList()
        {
            currentTrack = -1;
            Count = 0;
            this.soundAdress = new string[10000];
            this.soundNames = new string[10000];
 
        }
        public void GetAdress()
        {
            FolderBrowserDialog dialog = new FolderBrowserDialog();
            dialog.ShowNewFolderButton = false;
            dialog.Description = "Выберите папку с музыкой";
 
 
            if (dialog.ShowDialog() == DialogResult.OK)
            {
                AllFolderAndFiles(dialog.SelectedPath);
            }
        }
        private void Add(string adress, string name)
        {
            soundAdress[Count] = adress;
            soundNames[Count] = name;
            Count++;
        }
        private void AllFolderAndFiles(string folder)
        {
 
            DirectoryInfo dir = new DirectoryInfo(folder);
            FileInfo[] filesMP3 = dir.GetFiles("*.mp3");
            FileInfo[] filesWAV = dir.GetFiles("*.wav");
 
            foreach (FileInfo file in filesMP3)
            {
                Add(file.FullName, file.Name);
            }
            foreach (FileInfo file in filesWAV)
            {
                Add(file.FullName, file.Name);
            }
 
 
 
            DirectoryInfo[] folders = dir.GetDirectories();
            foreach (DirectoryInfo info in folders)
            {
                AllFolderAndFiles(info.FullName);
 
            }
 
 
 
        }
        
        /// <summary>
        /// Удалить текущий трек
        /// </summary>
 
        public void Play(int index)
        {
 
 
            if (player != null)
            {
 
                if (player.State == StateFlags.Paused && currentTrack == index)
                {
                    player.Play();
                }
                else
                {
                    player.Open(soundAdress[index]);
                    player.Play();
                }
            }
            else
            {
 
                player = new Audio(soundAdress[index]);
                player.Play();
 
            }
            this.trackTime = (int)player.Duration;
            this.currentTrack = index;
        }
 
 
        public void Play()
        {
            if (soundAdress[0] != null)
            {
                player.Open(soundAdress[0], true);
            }
            else
            {
                throw new Exception("No track to play!");
            }
        }
        public void Stop()
        {
            player.Stop();
        }
        public void Pause()
        {
            player.Pause();
        }
        public void Next()
        {
            if (currentTrack < Count)
            {
                currentTrack = currentTrack + 1;
                Play(currentTrack);
            }
        }
        public void Previous()
        {
            if (currentTrack > 0)
            {
                currentTrack = currentTrack - 1;
                Play(currentTrack);
            }
 
        }
        public void PlayTime(int seconds)
        {
            player.CurrentPosition = (double)seconds;
 
 
        }
    }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4 из 5
Похожие ответы