注意:此类在 .NET Framework 2.0 版中是新增的。
控制 .wav 文件中的声音播放。
命名空间:System.Media
程序集:System(在 system.dll 中)
SoundPlayer 类提供了加载和播放 .wav 文件的简单界面。SoundPlayer 类支持从文件路径、URL、包含 .wav 文件的 Stream 或包含 .wav 文件的嵌入资源中加载 .wav 文件。
要使用 SoundPlayer 类播放声音,请用 .wav 文件的路径配置 SoundPlayer 并调用某个播放方法。可以使用某个构造函数或通过设置 SoundLocation 或 Stream 属性来标识要播放的 .wav 文件。可以在播放前使用某个加载方法加载文件,或者将加载推迟到调用某个播放方法时。被配置为从 Stream 或 URL 中加载 .wav 文件的 SoundPlayer 必须在播放开始前将 .wav 文件加载到内存中。
可以同步或异步地加载或播放 .wav 文件。如果调用同步加载或播放方法,调用线程将一直等到方法返回,这可能会导致绘制和其他事件中断。调用异步加载或播放方法则允许调用线程继续执行,而不会中断。有关异步方法调用的更多信息,请参见 如何:在后台运行操作。
当 SoundPlayer 加载完 .wav 文件后,它会引发 LoadCompleted 事件。可以检查事件处理程序中的 AsyncCompletedEventArgs,确定加载是成功还是失败。当音频源设置为新文件路径或 URL 时,引发 SoundLocationChanged 事件。当音频源设置为新 Stream 时,引发 StreamChanged 事件。有关处理事件的更多信息,请参见 使用事件。
有关 SoundPlayer 的更多信息,请参见 SoundPlayer 类概述。
下面的代码示例演示 SoundPlayer 类的用法,该类从本地路径或统一资源标识符 (URI) 中播放 .wav 文件。
Imports System
Imports System.Collections
Imports System.ComponentModel
Imports System.Diagnostics
Imports System.Drawing
Imports System.Media
Imports System.Windows.Forms
Public Class SoundTestForm
Inherits System.Windows.Forms.Form
Private label1 As System.Windows.Forms.Label
Private WithEvents filepathTextbox As System.Windows.Forms.TextBox
Private WithEvents playOnceSyncButton As System.Windows.Forms.Button
Private WithEvents playOnceAsyncButton As System.Windows.Forms.Button
Private WithEvents playLoopAsyncButton As System.Windows.Forms.Button
Private WithEvents selectFileButton As System.Windows.Forms.Button
Private WithEvents stopButton As System.Windows.Forms.Button
Private statusBar As System.Windows.Forms.StatusBar
Private WithEvents loadSyncButton As System.Windows.Forms.Button
Private WithEvents loadAsyncButton As System.Windows.Forms.Button
Private player As SoundPlayer
Public Sub New()
' Initialize Forms Designer generated code.
InitializeComponent()
' Disable playback controls until a valid .wav file
' is selected.
EnablePlaybackControls(False)
' Set up the status bar and other controls.
InitializeControls()
' Set up the SoundPlayer object.
InitializeSound()
End Sub
' Sets up the status bar and other controls.
Private Sub InitializeControls()
' Set up the status bar.
Dim panel As New StatusBarPanel
panel.BorderStyle = StatusBarPanelBorderStyle.Sunken
panel.Text = "Ready."
panel.AutoSize = StatusBarPanelAutoSize.Spring
Me.statusBar.ShowPanels = True
Me.statusBar.Panels.Add(panel)
End Sub
' Sets up the SoundPlayer object.
Private Sub InitializeSound()
' Create an instance of the SoundPlayer class.
player = New SoundPlayer
' Listen for the LoadCompleted event.
AddHandler player.LoadCompleted, AddressOf player_LoadCompleted
' Listen for the SoundLocationChanged event.
AddHandler player.SoundLocationChanged, AddressOf player_LocationChanged
End Sub
Private Sub selectFileButton_Click(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles selectFileButton.Click
' Create a new OpenFileDialog.
Dim dlg As New OpenFileDialog
' Make sure the dialog checks for existence of the
' selected file.
dlg.CheckFileExists = True
' Allow selection of .wav files only.
dlg.Filter = "WAV files (*.wav)|*.wav"
dlg.DefaultExt = ".wav"
' Activate the file selection dialog.
If dlg.ShowDialog() = System.Windows.Forms.DialogResult.OK Then
' Get the selected file's path from the dialog.
Me.filepathTextbox.Text = dlg.FileName
' Assign the selected file's path to the SoundPlayer object.
player.SoundLocation = filepathTextbox.Text
End If
End Sub
' Convenience method for setting message text in
' the status bar.
Private Sub ReportStatus(ByVal statusMessage As String)
' If the caller passed in a message...
If Not (statusMessage Is Nothing) AndAlso _
statusMessage <> [String].Empty Then
' ...post the caller's message to the status bar.
Me.statusBar.Panels(0).Text = statusMessage
End If
End Sub
' Enables and disables play controls.
Private Sub EnablePlaybackControls(ByVal enabled As Boolean)
Me.playOnceSyncButton.Enabled = enabled
Me.playOnceAsyncButton.Enabled = enabled
Me.playLoopAsyncButton.Enabled = enabled
Me.stopButton.Enabled = enabled
End Sub
Private Sub filepathTextbox_TextChanged(ByVal sender As Object, _
ByVal e As EventArgs) Handles filepathTextbox.TextChanged
' Disable playback controls until the new .wav is loaded.
EnablePlaybackControls(False)
End Sub
Private Sub loadSyncButton_Click(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles loadSyncButton.Click
' Disable playback controls until the .wav is successfully
' loaded. The LoadCompleted event handler will enable them.
EnablePlaybackControls(False)
Try
' Assign the selected file's path to the SoundPlayer object.
player.SoundLocation = filepathTextbox.Text
' Load the .wav file.
player.Load()
Catch ex As Exception
ReportStatus(ex.Message)
End Try
End Sub
Private Sub loadAsyncButton_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles loadAsyncButton.Click
' Disable playback controls until the .wav is successfully
' loaded. The LoadCompleted event handler will enable them.
EnablePlaybackControls(False)
Try
' Assign the selected file's path to the SoundPlayer object.
player.SoundLocation = Me.filepathTextbox.Text
' Load the .wav file.
player.LoadAsync()
Catch ex As Exception
ReportStatus(ex.Message)
End Try
End Sub
' Synchronously plays the selected .wav file once.
' If the file is large, UI response will be visibly
' affected.
Private Sub playOnceSyncButton_Click(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles playOnceSyncButton.Click
ReportStatus("Playing .wav file synchronously.")
player.PlaySync()
ReportStatus("Finished playing .wav file synchronously.")
End Sub
' Asynchronously plays the selected .wav file once.
Private Sub playOnceAsyncButton_Click(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles playOnceAsyncButton.Click
ReportStatus("Playing .wav file asynchronously.")
player.Play()
End Sub
' Asynchronously plays the selected .wav file until the user
' clicks the Stop button.
Private Sub playLoopAsyncButton_Click(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles playLoopAsyncButton.Click
ReportStatus("Looping .wav file asynchronously.")
player.PlayLooping()
End Sub
' Stops the currently playing .wav file, if any.
Private Sub stopButton_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles stopButton.Click
player.Stop()
ReportStatus("Stopped by user.")
End Sub
' Handler for the LoadCompleted event.
Private Sub player_LoadCompleted(ByVal sender As Object, _
ByVal e As AsyncCompletedEventArgs)
Dim message As String = [String].Format("LoadCompleted: {0}", _
Me.filepathTextbox.Text)
ReportStatus(message)
EnablePlaybackControls(True)
End Sub
' Handler for the SoundLocationChanged event.
Private Sub player_LocationChanged(ByVal sender As Object, _
ByVal e As EventArgs)
Dim message As String = [String].Format("SoundLocationChanged: {0}", _
player.SoundLocation)
ReportStatus(message)
End Sub
Private Sub InitializeComponent()
Me.filepathTextbox = New System.Windows.Forms.TextBox
Me.selectFileButton = New System.Windows.Forms.Button
Me.label1 = New System.Windows.Forms.Label
Me.loadSyncButton = New System.Windows.Forms.Button
Me.playOnceSyncButton = New System.Windows.Forms.Button
Me.playOnceAsyncButton = New System.Windows.Forms.Button
Me.stopButton = New System.Windows.Forms.Button
Me.playLoopAsyncButton = New System.Windows.Forms.Button
Me.statusBar = New System.Windows.Forms.StatusBar
Me.loadAsyncButton = New System.Windows.Forms.Button
Me.SuspendLayout()
'
' filepathTextbox
'
Me.filepathTextbox.Anchor = CType(System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left Or System.Windows.Forms.AnchorStyles.Right, System.Windows.Forms.AnchorStyles)
Me.filepathTextbox.Location = New System.Drawing.Point(7, 25)
Me.filepathTextbox.Name = "filepathTextbox"
Me.filepathTextbox.Size = New System.Drawing.Size(263, 20)
Me.filepathTextbox.TabIndex = 1
Me.filepathTextbox.Text = ""
'
' selectFileButton
'
Me.selectFileButton.Anchor = CType(System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right, System.Windows.Forms.AnchorStyles)
Me.selectFileButton.Location = New System.Drawing.Point(276, 25)
Me.selectFileButton.Name = "selectFileButton"
Me.selectFileButton.Size = New System.Drawing.Size(23, 21)
Me.selectFileButton.TabIndex = 2
Me.selectFileButton.Text = "..."
'
' label1
'
Me.label1.Location = New System.Drawing.Point(7, 7)
Me.label1.Name = "label1"
Me.label1.Size = New System.Drawing.Size(145, 17)
Me.label1.TabIndex = 3
Me.label1.Text = ".wav path or URL:"
'
' loadSyncButton
'
Me.loadSyncButton.Location = New System.Drawing.Point(7, 53)
Me.loadSyncButton.Name = "loadSyncButton"
Me.loadSyncButton.Size = New System.Drawing.Size(142, 23)
Me.loadSyncButton.TabIndex = 4
Me.loadSyncButton.Text = "Load Synchronously"
'
' playOnceSyncButton
'
Me.playOnceSyncButton.Location = New System.Drawing.Point(7, 86)
Me.playOnceSyncButton.Name = "playOnceSyncButton"
Me.playOnceSyncButton.Size = New System.Drawing.Size(142, 23)
Me.playOnceSyncButton.TabIndex = 5
Me.playOnceSyncButton.Text = "Play Once Synchronously"
'
' playOnceAsyncButton
'
Me.playOnceAsyncButton.Location = New System.Drawing.Point(149, 86)
Me.playOnceAsyncButton.Name = "playOnceAsyncButton"
Me.playOnceAsyncButton.Size = New System.Drawing.Size(147, 23)
Me.playOnceAsyncButton.TabIndex = 6
Me.playOnceAsyncButton.Text = "Play Once Asynchronously"
'
' stopButton
'
Me.stopButton.Location = New System.Drawing.Point(149, 109)
Me.stopButton.Name = "stopButton"
Me.stopButton.Size = New System.Drawing.Size(147, 23)
Me.stopButton.TabIndex = 7
Me.stopButton.Text = "Stop"
'
' playLoopAsyncButton
'
Me.playLoopAsyncButton.Location = New System.Drawing.Point(7, 109)
Me.playLoopAsyncButton.Name = "playLoopAsyncButton"
Me.playLoopAsyncButton.Size = New System.Drawing.Size(142, 23)
Me.playLoopAsyncButton.TabIndex = 8
Me.playLoopAsyncButton.Text = "Loop Asynchronously"
'
' statusBar
'
Me.statusBar.Location = New System.Drawing.Point(0, 146)
Me.statusBar.Name = "statusBar"
Me.statusBar.Size = New System.Drawing.Size(306, 22)
Me.statusBar.SizingGrip = False
Me.statusBar.TabIndex = 9
Me.statusBar.Text = "(no status)"
'
' loadAsyncButton
'
Me.loadAsyncButton.Location = New System.Drawing.Point(149, 53)
Me.loadAsyncButton.Name = "loadAsyncButton"
Me.loadAsyncButton.Size = New System.Drawing.Size(147, 23)
Me.loadAsyncButton.TabIndex = 10
Me.loadAsyncButton.Text = "Load Asynchronously"
'
' SoundTestForm
'
Me.ClientSize = New System.Drawing.Size(306, 168)
Me.Controls.Add(loadAsyncButton)
Me.Controls.Add(statusBar)
Me.Controls.Add(playLoopAsyncButton)
Me.Controls.Add(stopButton)
Me.Controls.Add(playOnceAsyncButton)
Me.Controls.Add(playOnceSyncButton)
Me.Controls.Add(loadSyncButton)
Me.Controls.Add(label1)
Me.Controls.Add(selectFileButton)
Me.Controls.Add(filepathTextbox)
Me.MinimumSize = New System.Drawing.Size(310, 165)
Me.Name = "SoundTestForm"
Me.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Show
Me.Text = "Sound API Test Form"
Me.ResumeLayout(False)
End Sub 'InitializeComponent
<STAThread()> _
Shared Sub Main()
Application.Run(New SoundTestForm)
End Sub
End Class 'SoundTestForm
using System;
using System.Collections;
using System.ComponentModel;
using System.Diagnostics;
using System.Drawing;
using System.Media;
using System.Windows.Forms;
namespace SoundApiExample
{
public class SoundTestForm : System.Windows.Forms.Form
{
private System.Windows.Forms.Label label1;
private System.Windows.Forms.TextBox filepathTextbox;
private System.Windows.Forms.Button playOnceSyncButton;
private System.Windows.Forms.Button playOnceAsyncButton;
private System.Windows.Forms.Button playLoopAsyncButton;
private System.Windows.Forms.Button selectFileButton;
private System.Windows.Forms.Button stopButton;
private System.Windows.Forms.StatusBar statusBar;
private System.Windows.Forms.Button loadSyncButton;
private System.Windows.Forms.Button loadAsyncButton;
private SoundPlayer player;
public SoundTestForm()
{
// Initialize Forms Designer generated code.
InitializeComponent();
// Disable playback controls until a valid .wav file
// is selected.
EnablePlaybackControls(false);
// Set up the status bar and other controls.
InitializeControls();
// Set up the SoundPlayer object.
InitializeSound();
}
// Sets up the status bar and other controls.
private void InitializeControls()
{
// Set up the status bar.
StatusBarPanel panel = new StatusBarPanel();
panel.BorderStyle = StatusBarPanelBorderStyle.Sunken;
panel.Text = "Ready.";
panel.AutoSize = StatusBarPanelAutoSize.Spring;
this.statusBar.ShowPanels = true;
this.statusBar.Panels.Add(panel);
}
// Sets up the SoundPlayer object.
private void InitializeSound()
{
// Create an instance of the SoundPlayer class.
player = new SoundPlayer();
// Listen for the LoadCompleted event.
player.LoadCompleted += new AsyncCompletedEventHandler(player_LoadCompleted);
// Listen for the SoundLocationChanged event.
player.SoundLocationChanged += new EventHandler(player_LocationChanged);
}
private void selectFileButton_Click(object sender,
System.EventArgs e)
{
// Create a new OpenFileDialog.
OpenFileDialog dlg = new OpenFileDialog();
// Make sure the dialog checks for existence of the
// selected file.
dlg.CheckFileExists = true;
// Allow selection of .wav files only.
dlg.Filter = "WAV files (*.wav)|*.wav";
dlg.DefaultExt = ".wav";
// Activate the file selection dialog.
if (dlg.ShowDialog() == DialogResult.OK)
{
// Get the selected file's path from the dialog.
this.filepathTextbox.Text = dlg.FileName;
// Assign the selected file's path to
// the SoundPlayer object.
player.SoundLocation = filepathTextbox.Text;
}
}
// Convenience method for setting message text in
// the status bar.
private void ReportStatus(string statusMessage)
{
// If the caller passed in a message...
if ((statusMessage != null) && (statusMessage != String.Empty))
{
// ...post the caller's message to the status bar.
this.statusBar.Panels[0].Text = statusMessage;
}
}
// Enables and disables play controls.
private void EnablePlaybackControls(bool enabled)
{
this.playOnceSyncButton.Enabled = enabled;
this.playOnceAsyncButton.Enabled = enabled;
this.playLoopAsyncButton.Enabled = enabled;
this.stopButton.Enabled = enabled;
}
private void filepathTextbox_TextChanged(object sender,
EventArgs e)
{
// Disable playback controls until the new .wav is loaded.
EnablePlaybackControls(false);
}
private void loadSyncButton_Click(object sender,
System.EventArgs e)
{
// Disable playback controls until the .wav is
// successfully loaded. The LoadCompleted event
// handler will enable them.
EnablePlaybackControls(false);
try
{
// Assign the selected file's path to
// the SoundPlayer object.
player.SoundLocation = filepathTextbox.Text;
// Load the .wav file.
player.Load();
}
catch (Exception ex)
{
ReportStatus(ex.Message);
}
}
private void loadAsyncButton_Click(System.Object sender,
System.EventArgs e)
{
// Disable playback controls until the .wav is
// successfully loaded. The LoadCompleted event
// handler will enable them.
EnablePlaybackControls(false);
try
{
// Assign the selected file's path to
// the SoundPlayer object.
player.SoundLocation = this.filepathTextbox.Text;
// Load the .wav file.
player.LoadAsync();
}
catch (Exception ex)
{
ReportStatus(ex.Message);
}
}
// Synchronously plays the selected .wav file once.
// If the file is large, UI response will be visibly
// affected.
private void playOnceSyncButton_Click(object sender,
System.EventArgs e)
{
ReportStatus("Playing .wav file synchronously.");
player.PlaySync();
ReportStatus("Finished playing .wav file synchronously.");
}
// Asynchronously plays the selected .wav file once.
private void playOnceAsyncButton_Click(object sender,
System.EventArgs e)
{
ReportStatus("Playing .wav file asynchronously.");
player.Play();
}
// Asynchronously plays the selected .wav file until the user
// clicks the Stop button.
private void playLoopAsyncButton_Click(object sender,
System.EventArgs e)
{
ReportStatus("Looping .wav file asynchronously.");
player.PlayLooping();
}
// Stops the currently playing .wav file, if any.
private void stopButton_Click(System.Object sender,
System.EventArgs e)
{
player.Stop();
ReportStatus("Stopped by user.");
}
// Handler for the LoadCompleted event.
private void player_LoadCompleted(object sender,
AsyncCompletedEventArgs e)
{
string message = String.Format("LoadCompleted: {0}",
this.filepathTextbox.Text);
ReportStatus(message);
EnablePlaybackControls(true);
}
// Handler for the SoundLocationChanged event.
private void player_LocationChanged(object sender, EventArgs e)
{
string message = String.Format("SoundLocationChanged: {0}",
player.SoundLocation);
ReportStatus(message);
}
#region Windows Form Designer generated code
private void InitializeComponent()
{
this.filepathTextbox = new System.Windows.Forms.TextBox();
this.selectFileButton = new System.Windows.Forms.Button();
this.label1 = new System.Windows.Forms.Label();
this.loadSyncButton = new System.Windows.Forms.Button();
this.playOnceSyncButton = new System.Windows.Forms.Button();
this.playOnceAsyncButton = new System.Windows.Forms.Button();
this.stopButton = new System.Windows.Forms.Button();
this.playLoopAsyncButton = new System.Windows.Forms.Button();
this.statusBar = new System.Windows.Forms.StatusBar();
this.loadAsyncButton = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// filepathTextbox
//
this.filepathTextbox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right)));
this.filepathTextbox.Location = new System.Drawing.Point(7, 25);
this.filepathTextbox.Name = "filepathTextbox";
this.filepathTextbox.Size = new System.Drawing.Size(263, 20);
this.filepathTextbox.TabIndex = 1;
this.filepathTextbox.Text = "";
this.filepathTextbox.TextChanged += new System.EventHandler(this.filepathTextbox_TextChanged);
//
// selectFileButton
//
this.selectFileButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.selectFileButton.Location = new System.Drawing.Point(276, 25);
this.selectFileButton.Name = "selectFileButton";
this.selectFileButton.Size = new System.Drawing.Size(23, 21);
this.selectFileButton.TabIndex = 2;
this.selectFileButton.Text = "...";
this.selectFileButton.Click += new System.EventHandler(this.selectFileButton_Click);
//
// label1
//
this.label1.Location = new System.Drawing.Point(7, 7);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(145, 17);
this.label1.TabIndex = 3;
this.label1.Text = ".wav path or URL:";
//
// loadSyncButton
//
this.loadSyncButton.Location = new System.Drawing.Point(7, 53);
this.loadSyncButton.Name = "loadSyncButton";
this.loadSyncButton.Size = new System.Drawing.Size(142, 23);
this.loadSyncButton.TabIndex = 4;
this.loadSyncButton.Text = "Load Synchronously";
this.loadSyncButton.Click += new System.EventHandler(this.loadSyncButton_Click);
//
// playOnceSyncButton
//
this.playOnceSyncButton.Location = new System.Drawing.Point(7, 86);
this.playOnceSyncButton.Name = "playOnceSyncButton";
this.playOnceSyncButton.Size = new System.Drawing.Size(142, 23);
this.playOnceSyncButton.TabIndex = 5;
this.playOnceSyncButton.Text = "Play Once Synchronously";
this.playOnceSyncButton.Click += new System.EventHandler(this.playOnceSyncButton_Click);
//
// playOnceAsyncButton
//
this.playOnceAsyncButton.Location = new System.Drawing.Point(149, 86);
this.playOnceAsyncButton.Name = "playOnceAsyncButton";
this.playOnceAsyncButton.Size = new System.Drawing.Size(147, 23);
this.playOnceAsyncButton.TabIndex = 6;
this.playOnceAsyncButton.Text = "Play Once Asynchronously";
this.playOnceAsyncButton.Click += new System.EventHandler(this.playOnceAsyncButton_Click);
//
// stopButton
//
this.stopButton.Location = new System.Drawing.Point(149, 109);
this.stopButton.Name = "stopButton";
this.stopButton.Size = new System.Drawing.Size(147, 23);
this.stopButton.TabIndex = 7;
this.stopButton.Text = "Stop";
this.stopButton.Click += new System.EventHandler(this.stopButton_Click);
//
// playLoopAsyncButton
//
this.playLoopAsyncButton.Location = new System.Drawing.Point(7, 109);
this.playLoopAsyncButton.Name = "playLoopAsyncButton";
this.playLoopAsyncButton.Size = new System.Drawing.Size(142, 23);
this.playLoopAsyncButton.TabIndex = 8;
this.playLoopAsyncButton.Text = "Loop Asynchronously";
this.playLoopAsyncButton.Click += new System.EventHandler(this.playLoopAsyncButton_Click);
//
// statusBar
//
this.statusBar.Location = new System.Drawing.Point(0, 146);
this.statusBar.Name = "statusBar";
this.statusBar.Size = new System.Drawing.Size(306, 22);
this.statusBar.SizingGrip = false;
this.statusBar.TabIndex = 9;
this.statusBar.Text = "(no status)";
//
// loadAsyncButton
//
this.loadAsyncButton.Location = new System.Drawing.Point(149, 53);
this.loadAsyncButton.Name = "loadAsyncButton";
this.loadAsyncButton.Size = new System.Drawing.Size(147, 23);
this.loadAsyncButton.TabIndex = 10;
this.loadAsyncButton.Text = "Load Asynchronously";
this.loadAsyncButton.Click += new System.EventHandler(this.loadAsyncButton_Click);
//
// SoundTestForm
//
this.ClientSize = new System.Drawing.Size(306, 168);
this.Controls.Add(this.loadAsyncButton);
this.Controls.Add(this.statusBar);
this.Controls.Add(this.playLoopAsyncButton);
this.Controls.Add(this.stopButton);
this.Controls.Add(this.playOnceAsyncButton);
this.Controls.Add(this.playOnceSyncButton);
this.Controls.Add(this.loadSyncButton);
this.Controls.Add(this.label1);
this.Controls.Add(this.selectFileButton);
this.Controls.Add(this.filepathTextbox);
this.MinimumSize = new System.Drawing.Size(310, 165);
this.Name = "SoundTestForm";
this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Show;
this.Text = "Sound API Test Form";
this.ResumeLayout(false);
}
#endregion
[STAThread]
static void Main()
{
Application.Run(new SoundTestForm());
}
}
}