Postupy: Použití vyvolání platformy pro přehrání souboru wave (Průvodce programováním v C#)
Následující příklad kódu jazyka C# znázorňuje použití platformy vyvolat služby přehrát zvukový wave soubor operačního systému Windows.
Příklad
Tento příklad používá DllImport import winmm.dllna PlaySound metoda vstupní bod jako Form1 PlaySound().V příkladu má jednoduchý formulář pomocí tlačítka systému Windows.Klepnutím na tlačítko otevře standardní windows OpenFileDialog dialogové okno, takže můžete otevřít soubor přehrát.Při výběru wave soubor se přehraje pomocí PlaySound() metodu winmm.Způsob sestavení knihovny DLL.Další informace o společnosti winmm.dll PlaySound metoda, viz pomocí funkce PlaySound s Waveform Audio soubory.Procházet a vyberte soubor, který má příponu WAV a potom klepněte na tlačítko otevřených přehrávání vyvolat soubor wave pomocí platformy.Textové pole zobrazuje úplnou cestu vybraný soubor.
Otevřené soubory je filtrován dialogové okno zobrazit pouze soubory s příponou WAV pomocí nastavení filtru:
dialog1.Filter = "Wav Files (*.wav)|*.wav";
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace WinSound
{
public partial class Form1 : Form
{
private TextBox textBox1;
private Button button1;
public Form1() //constructor
{
InitializeComponent();
}
[System.Runtime.InteropServices.DllImport("winmm.DLL", EntryPoint = "PlaySound", SetLastError = true, CharSet = CharSet.Unicode, ThrowOnUnmappableChar = true)]
private static extern bool PlaySound(string szSound, System.IntPtr hMod, PlaySoundFlags flags);
[System.Flags]
public enum PlaySoundFlags : int
{
SND_SYNC = 0x0000,
SND_ASYNC = 0x0001,
SND_NODEFAULT = 0x0002,
SND_LOOP = 0x0008,
SND_NOSTOP = 0x0010,
SND_NOWAIT = 0x00002000,
SND_FILENAME = 0x00020000,
SND_RESOURCE = 0x00040004
}
private void button1_Click (object sender, System.EventArgs e)
{
OpenFileDialog dialog1 = new OpenFileDialog();
dialog1.Title = "Browse to find sound file to play";
dialog1.InitialDirectory = @"c:\";
dialog1.Filter = "Wav Files (*.wav)|*.wav";
dialog1.FilterIndex = 2;
dialog1.RestoreDirectory = true;
if(dialog1.ShowDialog() == DialogResult.OK)
{
textBox1.Text = dialog1.FileName;
PlaySound (dialog1.FileName, new System.IntPtr(), PlaySoundFlags.SND_SYNC);
}
}
}
}
Probíhá kompilace kódu
Kompilovat kód
Vytvořit nový projekt C# Windows aplikace Visual Studio s názvem WinSound.
Výše uvedený kód zkopírujte a vložte nad obsah Form1.cs souboru.
Zkopírujte následující kód a vložte jej do Form1.Designer.cs v souboru InitializeComponent() metoda po existující kód.
this.button1 = new System.Windows.Forms.Button(); this.textBox1 = new System.Windows.Forms.TextBox(); this.SuspendLayout(); // // button1 // this.button1.Location = new System.Drawing.Point(192, 40); this.button1.Name = "button1"; this.button1.Size = new System.Drawing.Size(88, 24); this.button1.TabIndex = 0; this.button1.Text = "Browse"; this.button1.Click += new System.EventHandler(this.button1_Click); // // textBox1 // this.textBox1.Location = new System.Drawing.Point(8, 40); this.textBox1.Name = "textBox1"; this.textBox1.Size = new System.Drawing.Size(168, 20); this.textBox1.TabIndex = 1; this.textBox1.Text = "FIle path"; // // Form1 // this.AutoScaleDimensions = new System.Drawing.SizeF(5, 13); this.ClientSize = new System.Drawing.Size(292, 266); this.Controls.Add(this.textBox1); this.Controls.Add(this.button1); this.Name = "Form1"; this.Text = "Platform Invoke WinSound C#"; this.ResumeLayout(false); this.PerformLayout();
Sestavit a spustit kód.
Zabezpečení
Další informace naleznete v .NET Framework zabezpečení.
Viz také
Referenční dokumentace
Přehled interoperability (Průvodce programováním v C#)
Přehled interoperability (Průvodce programováním v C#)
Koncepty
Bližší pohled na vyvolání platformy