방법: 플랫폼 호출을 사용하여 웨이브 파일 재생(장치)

업데이트: 2007년 11월

다음 코드 예제에서는 플랫폼 호출(PInvoke)을 사용하여 모바일 장치에서 웨이브 사운드 파일을 재생하는 방법을 보여 줍니다.

예제

이 예제 코드는 모바일 장치에서 PlaySound를 사용하여 사운드 파일을 재생합니다. 이 코드에서는 System.Runtime.InteropServices를 사용하여 Compact Framework CoreDll.DLL의 PlaySound 메서드를 호출합니다.

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

    }
}

코드 컴파일

  • Visual Studio에서 새 C# Smartphone 응용 프로그램 프로젝트를 만들고 이름을 MobileSoundPInvoke로 지정합니다.

  • 이전 예제의 코드를 복사한 다음 콘솔 응용 프로그램에서 MobileSoundPInvoke 프로젝트의 Form1.cs 파일에 붙여넣습니다.

강력한 프로그래밍

  • CMobilePlaySound (string szSound, IntPtr hMod, int flags) 함수에 .wav 파일의 경로 및 파일 이름을 포함하여 적절한 매개 변수가 전달되었는지 확인합니다.

보안

보안에 대한 자세한 내용은 .NET Framework Security를 참조하십시오.

참고 항목

작업

Platform Invoke 기술 샘플

개념

스마트 장치 샘플

스마트 장치 개발 작업 절차

기타 리소스

C++에서 명시적 PInvoke 사용(DllImport 특성)