Como: Invocação de plataforma de uso para executar um arquivo wave (guia de programação translation from VPE for Csharp)

O exemplo de código a seguir translation from VPE for Csharp ilustra como usar invocação de plataforma serviços para executar um arquivo de som wave no sistema operacional Windows.

Exemplo

Esse código de exemplo usa DllImport Para importar winmm.dll'sistema autônomo PlaySound ponto de entrada do método sistema autônomo Form1 PlaySound(). O exemplo possui um formulário simples do Windows com o botão.Clique no botão para em em aberto um padrão de janelas OpenFileDialog caixa de diálogo para que possa em em aberto um arquivo seja reproduzido. Quando um arquivo wave é selecionado, ele é reproduzido usando o PlaySound() método do método winmm.DLL assembly. Para obter mais informações sobre PlaySound método, consulte Usando a função PlaySound com arquivos de áudio waveform.Navegue e selecionar um arquivo que tenha uma extensão .wav e clicar em aberto para executar o arquivo wave usando invocação de plataforma.Uma caixa de texto exibe o caminho completo do arquivo selecionado.

The Arquivos abertoscaixa de diálogo é filtrada para mostrar somente os arquivos que tenham uma extensão .wav através das configurações de filtro:

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);
            } 
        }
    }
}

Compilando o código

Compilar o código

  1. Criar um novo projeto translation from VPE for Csharp Windows aplicativo no Visual Studio e nomeie-WinSound.

  2. Copie o código acima, e colar-lo sobre o Sumário do Form1.cs arquivo.

  3. Copie o seguinte código e colá-la no Form1.Designer.cs arquivo na InitializeComponent() método após qualquer código existente.

    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();
    
  4. Compilar e executar o código.

Segurança

Para obter mais informações, consulte Segurança do .NET estrutura.

Consulte também

Tarefas

Invocação de plataforma Tecnologia Exemplo

Conceitos

Guia de Programação C#

Referência

Visão geral da interoperabilidade (guia de programação translation from VPE for Csharp)

Outros recursos

Dados empacotamento com plataforma Invoke