Csharp/C Sharp/Development Class/Sound
Noice Maker
<source lang="csharp"> /* Code revised from chapter 1
GDI+ Custom Controls with Visual C# 2005 By Iulian Serban, Dragos Brezoi, Tiberiu Radu, Adam Ward Language English Paperback 272 pages [191mm x 235mm] Release date July 2006 ISBN 1904811604 Sample chapter http://www.packtpub.ru/files/1604_CustomControls_SampleChapter.pdf
For More info on GDI+ Custom Control with Microsoft Visual C# book visit website www.packtpub.ru
- /
using System; using System.Collections.Generic; using System.ruponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Media; using System.IO;
public partial class Form1 : Form { private TinyNoiseMaker tinyNoiseMaker1; private System.Windows.Forms.Button playButton; private System.ruponentModel.IContainer components = null; public Form1() { InitializeComponent(); } /// <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.playButton = new System.Windows.Forms.Button(); this.tinyNoiseMaker1 = new TinyNoiseMaker(); this.SuspendLayout(); // // playButton // this.playButton.Location = new System.Drawing.Point(100, 22); this.playButton.Name = "playButton"; this.playButton.Size = new System.Drawing.Size(82, 23); this.playButton.TabIndex = 1; this.playButton.Text = "Play My File"; this.playButton.UseVisualStyleBackColor = true; this.playButton.Click += new System.EventHandler(this.playButton_Click); // // tinyNoiseMaker1 // this.tinyNoiseMaker1.BackColor = System.Drawing.SystemColors.ControlLight; this.tinyNoiseMaker1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.tinyNoiseMaker1.FileName = null; this.tinyNoiseMaker1.Location = new System.Drawing.Point(21, 68); this.tinyNoiseMaker1.Name = "tinyNoiseMaker1"; this.tinyNoiseMaker1.Size = new System.Drawing.Size(268, 37); this.tinyNoiseMaker1.TabIndex = 0; this.tinyNoiseMaker1.PlayStart += new System.EventHandler(this.tinyNoiseMaker1_PlayStart); this.tinyNoiseMaker1.PlayStop += new System.EventHandler(this.tinyNoiseMaker1_PlayStop); // // Form1 // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(316, 163); this.Controls.Add(this.playButton); this.Controls.Add(this.tinyNoiseMaker1); this.Name = "Form1"; this.Text = "Form1"; this.ResumeLayout(false); } #endregion private void tinyNoiseMaker1_PlayStart(object sender, EventArgs e) { Text = "Started Play of: " + tinyNoiseMaker1.FileName; } private void tinyNoiseMaker1_PlayStop(object sender, EventArgs e) { Text = "Stopped Play of : " + tinyNoiseMaker1.FileName; } private void playButton_Click(object sender, EventArgs e) { tinyNoiseMaker1.FileName = "C:\\WINDOWS\\Media\\tada.wav"; tinyNoiseMaker1.Play(); } /// <summary> /// The main entry point for the application. /// </summary> [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } } public partial class TinyNoiseMaker : UserControl { public event EventHandler PlayStart; public event EventHandler PlayStop; /// <summary> /// Required designer variable. /// </summary> private System.ruponentModel.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 Component 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.openButton = new System.Windows.Forms.Button(); this.playButton = new System.Windows.Forms.Button(); this.stopButton = new System.Windows.Forms.Button(); this.openFileDialog = new System.Windows.Forms.OpenFileDialog(); this.SuspendLayout(); // // openButton // this.openButton.Location = new System.Drawing.Point(4, 4); this.openButton.Name = "openButton"; this.openButton.Size = new System.Drawing.Size(82, 25); this.openButton.TabIndex = 0; this.openButton.Text = "Open"; this.openButton.UseVisualStyleBackColor = true; this.openButton.Click += new System.EventHandler(this.openButton_Click); // // playButton // this.playButton.Location = new System.Drawing.Point(86, 4); this.playButton.Name = "playButton"; this.playButton.Size = new System.Drawing.Size(82, 25); this.playButton.TabIndex = 1; this.playButton.Text = "Play"; this.playButton.UseVisualStyleBackColor = true; this.playButton.Click += new System.EventHandler(this.playButton_Click); // // stopButton // this.stopButton.Location = new System.Drawing.Point(168, 4); this.stopButton.Name = "stopButton"; this.stopButton.Size = new System.Drawing.Size(82, 25); this.stopButton.TabIndex = 2; this.stopButton.Text = "Stop"; this.stopButton.UseVisualStyleBackColor = true; this.stopButton.Click += new System.EventHandler(this.stopButton_Click); // // openFileDialog // this.openFileDialog.FileName = "openFileDialog"; // // TinyNoiseMaker // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.BackColor = System.Drawing.SystemColors.ControlLight; this.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; this.Controls.Add(this.stopButton); this.Controls.Add(this.playButton); this.Controls.Add(this.openButton); this.Name = "TinyNoiseMaker"; this.Size = new System.Drawing.Size(250, 30); this.ResumeLayout(false); } #endregion private System.Windows.Forms.Button openButton; private System.Windows.Forms.Button playButton; private System.Windows.Forms.Button stopButton; private System.Windows.Forms.OpenFileDialog openFileDialog; protected virtual void OnPlayStart(EventArgs e) { if (PlayStart != null) { PlayStart(this, e); } } protected virtual void OnPlayStop(EventArgs e) { if (PlayStop != null) { PlayStop(this, e); } } SoundPlayer soundPlayer; public TinyNoiseMaker() { InitializeComponent(); soundPlayer = new SoundPlayer(); } private void openButton_Click(object sender, EventArgs e) { if (openFileDialog.ShowDialog() == DialogResult.OK) { FileName = openFileDialog.FileName; } } private void playButton_Click(object sender, EventArgs e) { Play(); } private void stopButton_Click(object sender, EventArgs e) { Stop(); } public void Play() { soundPlayer.Play(); OnPlayStart(EventArgs.Empty); } public void Stop() { soundPlayer.Stop(); OnPlayStop(EventArgs.Empty); } private string fileName; public string FileName { get { return fileName; } set { if (fileName != value) { fileName = value; soundPlayer.Stream = new FileStream(fileName, FileMode.Open, FileAccess.Read); } } } }
</source>