Freigeben über


Gewusst wie: Wiedergeben einer Wavedatei mithilfe des Plattformaufrufs (Geräte)

Aktualisiert: November 2007

Im folgenden Codebeispiel wird veranschaulicht, wie mithilfe des Plattformaufrufs (PInvoke) eine Wavedatei auf einem mobilen Gerät wiedergegeben werden kann.

Beispiel

In diesem Beispielcode wird mithilfe von PlaySound eine Sounddatei auf dem mobilen Gerät wiedergegeben. In diesem Code wird mithilfe von System.Runtime.InteropServices die PlaySound-Methode der CoreDll.DLL von Compact Framework aufgerufen.

using System;
using System.Drawing;
using System.Collections;
using System.Windows.Forms;
using System.Data;
using System.Runtime.InteropServices;

namespace MobileSoundPInvoke
{
    public class Form1 : System.Windows.Forms.Form
    {
        private System.Windows.Forms.MainMenu mainMenu1;

        public Form1()
        {
            InitializeComponent();
            PlaySound(".\\sound.wav");
        }

        #region Windows Form Designer generated code
        private void InitializeComponent()
        {
            this.mainMenu1 = new System.Windows.Forms.MainMenu();
            this.Menu = this.mainMenu1;

            this.Text = "Form1";
        }

        #endregion
        protected override void Dispose(bool disposing)
        {
            base.Dispose(disposing);
        }
        static void Main()
        {
            Application.Run(new Form1());
        }
        private enum Flags
        {
            SND_SYNC = 0x0000,
            SND_ASYNC = 0x0001,
            SND_NODEFAULT = 0x0002,
            SND_MEMORY = 0x0004,
            SND_LOOP = 0x0008,
            SND_NOSTOP = 0x0010,
            SND_NOWAIT = 0x00002000,
            SND_ALIAS = 0x00010000,
            SND_ALIAS_ID = 0x00110000,
            SND_FILENAME = 0x00020000,
            SND_RESOURCE = 0x00040004
        }

        [DllImport("CoreDll.DLL", EntryPoint = "PlaySound", SetLastError = true)]
        private extern static int MobilePlaySound(string szSound, IntPtr hMod, int flags);

        public void PlaySound(string fileName)
        {
            MobilePlaySound(fileName, IntPtr.Zero, (int)(Flags.SND_ASYNC | Flags.SND_FILENAME));
        }

    }
}

Kompilieren des Codes

  • Erstellen Sie in Visual Studio ein neues C#-Projekt für eine Smartphone-Anwendung, und nennen Sie es MobileSoundPInvoke.

  • Kopieren Sie den Code aus dem vorherigen Beispiel, und fügen Sie ihn statt des bisherigen Inhalts der Datei Form1.cs des MobileSoundPInvoke-Projekts in einer Konsolenanwendung ein.

Robuste Programmierung

  • Stellen Sie sicher, dass die korrekten Parameter an die CMobilePlaySound (string szSound, IntPtr hMod, int flags)-Funktion einschließlich Pfad und Dateinamen für die WAV-Datei übergeben werden.

Sicherheit

Weitere Informationen zur Sicherheit finden Sie unter .NET Framework Security.

Siehe auch

Aufgaben

Technologiebeispiel für Plattformaufrufe

Konzepte

Beispielprojekte für intelligente Geräte

Vorgehensweise beim Entwickeln intelligenter Geräte

Weitere Ressourcen

Verwenden von explizitem PInvoke in C++ (DllImport-Attribut)