Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Aşağıdaki C# kod örneği, Windows işletim sisteminde WAV ses dosyasını çalmak için platform çağırma hizmetlerinin nasıl kullanılacağını göstermektedir.
Örnek
Bu örnek kod, 'nin PlaySound
yöntem giriş noktasını olarak Form1 PlaySound()
içeri aktarmak winmm.dll
için kullanırDllImportAttribute. Örnekte düğmeli basit bir Windows Formu vardır. Düğmeye tıklanması, yürütülecek bir dosyayı açabilmeniz için standart bir pencere OpenFileDialog iletişim kutusu açar. Bir dalga dosyası seçildiğinde, winmm.dll kitaplığının yöntemi kullanılarak PlaySound()
oynatılır. Bu yöntem hakkında daha fazla bilgi için bkz . Waveform-Audio Files ile PlaySound işlevini kullanma. .wav uzantısına sahip bir dosyaya göz atın ve seçin ve ardından platform çağırmayı kullanarak dalga dosyasını yürütmek için Aç'ı seçin. Seçili dosyanın tam yolunu gösteren metin kutusu.
using System.Runtime.InteropServices;
namespace WinSound;
public partial class Form1 : Form
{
private TextBox textBox1;
private Button button1;
public Form1() // Constructor.
{
InitializeComponent();
}
[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)
{
var dialog1 = new OpenFileDialog();
dialog1.Title = "Browse to find sound file to play";
dialog1.InitialDirectory = @"c:\";
//<Snippet5>
dialog1.Filter = "Wav Files (*.wav)|*.wav";
//</Snippet5>
dialog1.FilterIndex = 2;
dialog1.RestoreDirectory = true;
if (dialog1.ShowDialog() == DialogResult.OK)
{
textBox1.Text = dialog1.FileName;
PlaySound(dialog1.FileName, new System.IntPtr(), PlaySoundFlags.SND_SYNC);
}
}
private void Form1_Load(object sender, EventArgs e)
{
// Including this empty method in the sample because in the IDE,
// when users click on the form, generates code that looks for a default method
// with this name. We add it here to prevent confusion for those using the samples.
}
}
Dosyaları Aç iletişim kutusu, filtre ayarları aracılığıyla yalnızca .wav uzantısına sahip dosyaları gösterecek şekilde filtrelenmiştir.
Kod derleme
Visual Studio'da yeni bir C# Windows Forms Uygulaması projesi oluşturun ve winSound olarak adlandırın. Önceki kodu kopyalayın ve Form1.cs dosyasının içeriğinin üzerine yapıştırın. Aşağıdaki kodu kopyalayın ve Form1.Tasarım Aracı yapıştırın. cs dosyası, yöntemindeInitializeComponent()
, mevcut koddan sonra.
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();
Kodu derleyin ve çalıştırın.