Porady: odtwarzanie dźwięku w pętli w formularzu systemu Windows

.NET Framework (current version)
 

Poniższy przykład kodu odtwarza dźwięk wielokrotnie. Gdy kod w stopPlayingButton_Click uruchamia program obsługi zdarzeń, wszystkie aktualnie odtwarzanie zatrzymuje dźwięku. Jeśli żaden dźwięk jest odtwarzany, nic się nie dzieje.

Przykład

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Media;
using System.Windows.Forms;

namespace SoundPlayerPlayLoopingExample
{
    public class Form1 : Form
    {
        private SoundPlayer Player = new SoundPlayer();

        public Form1()
        {
            InitializeComponent();
        }

        private void playLoopingButton_Click(object sender, EventArgs e)
        {
            try
            {
                // Note: You may need to change the location specified based on
                // the sounds loaded on your computer.
                this.Player.SoundLocation = @"C:\Windows\Media\chimes.wav";
                this.Player.PlayLooping();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error playing sound");
            }
        }

        private void stopPlayingButton_Click(object sender, EventArgs e)
        {
            this.Player.Stop();
        }

        /// <summary>
        /// Required designer variable.
        /// </summary>
        private System.ComponentModel.IContainer components = null;

        /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

        #region Windows Form Designer generated code

        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            this.playLoopingButton = new System.Windows.Forms.Button();
            this.stopPlayingButton = new System.Windows.Forms.Button();
            this.SuspendLayout();
            // 
            // playLoopingButton
            // 
            this.playLoopingButton.Location = new System.Drawing.Point(12, 12);
            this.playLoopingButton.Name = "playLoopingButton";
            this.playLoopingButton.Size = new System.Drawing.Size(87, 23);
            this.playLoopingButton.TabIndex = 0;
            this.playLoopingButton.Text = "Play Looping";
            this.playLoopingButton.UseVisualStyleBackColor = true;
            this.playLoopingButton.Click += new System.EventHandler(this.playLoopingButton_Click);
            // 
            // stopPlayingButton
            // 
            this.stopPlayingButton.Location = new System.Drawing.Point(105, 12);
            this.stopPlayingButton.Name = "stopPlayingButton";
            this.stopPlayingButton.Size = new System.Drawing.Size(75, 23);
            this.stopPlayingButton.TabIndex = 1;
            this.stopPlayingButton.Text = "Stop";
            this.stopPlayingButton.UseVisualStyleBackColor = true;
            this.stopPlayingButton.Click += new System.EventHandler(this.stopPlayingButton_Click);
            // 
            // Form1
            // 
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.ClientSize = new System.Drawing.Size(195, 51);
            this.Controls.Add(this.stopPlayingButton);
            this.Controls.Add(this.playLoopingButton);
            this.Name = "Form1";
            this.Text = "Form1";
            this.ResumeLayout(false);

        }

        #endregion

        private System.Windows.Forms.Button playLoopingButton;
        private System.Windows.Forms.Button stopPlayingButton;
    }

    static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.Run(new Form1());
        }
    }
}

Kompilowanie kodu

Ten przykład wymaga:

  • Odwołania do zestawów systemu i przestrzeń nazw System.Windows.Forms.

  • Aby zastąpić nazwę pliku "c:\Windows\Media\chimes.wav" z prawidłową nazwę pliku.

Informacje o tworzeniu w tym przykładzie z wiersza polecenia dla Visual Basic lub Visual C#, zobacz Tworzenie z wiersza polecenia (Visual Basic) lub Kompilacja za pomocą wiersza polecenia przy użyciu csc.exe. Można również tworzyć tym przykładzie Visual Studio przez wklejenie kodu do nowego projektu. Zobacz też porady: kompilowanie i uruchamianie pełną Windows formularze kod przykład za pomocą programu Visual Studio.

Skuteczne programowanie

Operacje na plikach powinna zostać ujęta w odpowiednie bloki obsługi wyjątków.

Następujące warunki mogą spowodować wyjątek:

Zabezpieczenia programu .NET Framework

Nie należy podejmować decyzji dotyczących zawartości pliku na podstawie nazwy pliku. Na przykład plik Form1.vb nie może być plikiem źródłowym programu Visual Basic. Sprawdź wszystkie dane wejściowe, zanim użyjesz danych w aplikacji.

Pokaż: