Как приостановить или остановить воспроизведение аудиофайла

Метод нажатия кнопки, упомянутый ниже, можно использовать для начала воспроизведения аудиофайла. Однако, как только он начнется, его нельзя будет приостановить, если я снова нажму кнопку, песня начнет воспроизводиться снова, с самого начала. Пожалуйста, дайте мне знать, как остановить это с помощью клавиши Enter.

private void btn_reproducir_Click(object sender, EventArgs e)
{         
    WindowsMediaPlayer myplayer = new WindowsMediaPlayer();
    myplayer.URL = @"C:\song.mp3";
    myplayer.controls.play();
}

Сначала вы, вероятно, захотите прочитать про variable scope, что WMP исчезнет после щелчка. Затем вы хотите предоставить код, связанный с проблемой (остановка)

Ňɏssa Pøngjǣrdenlarp 10.09.2018 00:56
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
3
1
845
2

Ответы 2

Пожалуйста, попробуйте этот код.

public partial class Form1 : Form
    {
        // Media player object
        WindowsMediaPlayer myplayer = new WindowsMediaPlayer();        

        public Form1()
        {
            InitializeComponent();
            myplayer.URL = @"C:\song.mp3";
        }

        private void reproducir_Click(object sender, EventArgs e)
        {           
            myplayer.controls.play();
        }

        private void btnStop_Click(object sender, EventArgs e)
        {
            myplayer.controls.stop();
        }

        private void btnPause_Click(object sender, EventArgs e)
        {
             myplayer.controls.pause();
        }
    }

Если вы хотите использовать одну и ту же кнопку для воспроизведения и приостановки музыки, вы можете использовать флаг, чтобы определить ее поведение:

bool isPlaying = false;

private void btn_reproducir_Click(object sender, EventArgs e)
{         
    WindowsMediaPlayer myplayer = new WindowsMediaPlayer();
    myplayer.URL = @"C:\song.mp3";

    if (isPlaying)
    {
        myplayer.controls.pause();
        isPlaying = false;
    }
    else
    {
        myplayer.controls.play();
        isPlaying = true;
    }
}

Если вы хотите использовать клавишу ввода, чтобы щелкнуть кнопку из любого места формы, просто установите «AcceptButton» формы на кнопку, которую вы хотите нажать. Пока элемент управления, который в настоящее время находится в фокусе, не использует клавишу ввода, нажатие клавиши ввода автоматически щелкнет AcceptButton. Сценарий, при котором это не сработает, - это если фокус находится в многострочном текстовом поле. Многострочное текстовое поле позволяет вам нажать Enter, чтобы начать новую строку, поэтому AcceptButton в этом случае не будет нажат.

Кроме того, вы всегда можете использовать клавишу табуляции для перехода к кнопке, а затем нажать клавишу ввода, когда кнопка будет выделена.

Другие вопросы по теме