이 문서는 기계 번역을 이용하여 번역되었습니다. 문서를 영문으로 보려면 영문 확인란을 선택하세요. 마우스 포인터를 텍스트 위로 이동시켜 팝업 창에서 영문 텍스트를 표시할 수도 있습니다.
번역
영문

SoundPlayer 클래스

 

게시 날짜: 2016년 11월

.Wav 파일에서 소리 재생을 제어 합니다.

네임스페이스:   System.Media
어셈블리:  System(System.dll에 있음)

System.Object
  System.MarshalByRefObject
    System.ComponentModel.Component
      System.Media.SoundPlayer

[SerializableAttribute]
[HostProtectionAttribute(SecurityAction.LinkDemand, UI = true)]
public class SoundPlayer : Component, ISerializable

이름설명
System_CAPS_pubmethodSoundPlayer()

SoundPlayer 클래스의 새 인스턴스를 초기화합니다.

System_CAPS_protmethodSoundPlayer(SerializationInfo, StreamingContext)

SoundPlayer 클래스의 새 인스턴스를 초기화합니다.

System_CAPS_pubmethodSoundPlayer(Stream)

새 인스턴스를 초기화는 SoundPlayer 클래스를 지정 된.wav 파일을 연결 Stream합니다.

System_CAPS_pubmethodSoundPlayer(String)

새 인스턴스를 초기화는 SoundPlayer 클래스를 지정 된.wav 파일을 연결 합니다.

이름설명
System_CAPS_protpropertyCanRaiseEvents

구성 요소 이벤트를 발생 시킬 수 있는지 여부를 나타내는 값을 가져옵니다.(Component에서 상속됨)

System_CAPS_pubpropertyContainer

가져옵니다는 IContainer 를 포함 하는 Component합니다.(Component에서 상속됨)

System_CAPS_protpropertyDesignMode

나타내는 값을 가져옵니다 여부는 Component 현재 디자인 모드에 있습니다.(Component에서 상속됨)

System_CAPS_protpropertyEvents

이에 연결 된 이벤트 처리기의 목록을 가져옵니다 Component합니다.(Component에서 상속됨)

System_CAPS_pubpropertyIsLoadCompleted

.Wav 파일의 로드가 성공적으로 완료 되었는지 여부를 나타내는 값을 가져옵니다.

System_CAPS_pubpropertyLoadTimeout

.Wav 파일 로드 해야 밀리초에서의 시간을 가져오거나 설정 합니다.

System_CAPS_pubpropertySite

가져오거나는 ISiteComponent합니다.(Component에서 상속됨)

System_CAPS_pubpropertySoundLocation

파일 경로 또는 로드할.wav 파일의 URL을 가져오거나 설정 합니다.

System_CAPS_pubpropertyStream

가져오거나는 Stream .wav 파일을 로드할 수입니다.

System_CAPS_pubpropertyTag

가져오거나는 Object 에 대 한 데이터를 포함 하는 SoundPlayer합니다.

이름설명
System_CAPS_pubmethodCreateObjRef(Type)

원격 개체와 통신 하는 데 프록시를 생성 하는 데 필요한 모든 관련 정보를 포함 하는 개체를 만듭니다.(MarshalByRefObject에서 상속됨)

System_CAPS_pubmethodDispose()

Component에서 사용하는 모든 리소스를 해제합니다.(Component에서 상속됨)

System_CAPS_protmethodDispose(Boolean)

Component에서 사용하는 관리되지 않는 리소스를 해제하고, 관리되는 리소스를 선택적으로 해제할 수 있습니다.(Component에서 상속됨)

System_CAPS_pubmethodEquals(Object)

지정한 개체와 현재 개체가 같은지 여부를 확인합니다.(Object에서 상속됨)

System_CAPS_protmethodFinalize()

가비지 수집에 의해 Component이(가) 회수되기 전에 관리되지 않는 리소스를 해제하고 기타 정리 작업을 수행합니다.(Component에서 상속됨)

System_CAPS_pubmethodGetHashCode()

기본 해시 함수로 작동합니다.(Object에서 상속됨)

System_CAPS_pubmethodGetLifetimeService()

이 인스턴스에 대 한 수명 정책을 제어 하는 수명이 현재 서비스 개체를 검색 합니다.(MarshalByRefObject에서 상속됨)

System_CAPS_protmethodGetService(Type)

Component 또는 해당 Container에서 제공하는 서비스를 나타내는 개체를 반환합니다.(Component에서 상속됨)

System_CAPS_pubmethodGetType()

현재 인스턴스의 Type을 가져옵니다.(Object에서 상속됨)

System_CAPS_pubmethodInitializeLifetimeService()

이 인스턴스의 수명 정책을 제어하는 수명 서비스 개체를 가져옵니다.(MarshalByRefObject에서 상속됨)

System_CAPS_pubmethodLoad()

소리를 동기적으로 로드합니다.

System_CAPS_pubmethodLoadAsync()

스트림 또는 새 스레드를 사용 하 여 웹 리소스에서.wav 파일을 로드 합니다.

System_CAPS_protmethodMemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.(Object에서 상속됨)

System_CAPS_protmethodMemberwiseClone(Boolean)

현재의 단순 복사본을 만듭니다 MarshalByRefObject 개체입니다.(MarshalByRefObject에서 상속됨)

System_CAPS_protmethodOnLoadCompleted(AsyncCompletedEventArgs)

LoadCompleted 이벤트를 발생시킵니다.

System_CAPS_protmethodOnSoundLocationChanged(EventArgs)

SoundLocationChanged 이벤트를 발생시킵니다.

System_CAPS_protmethodOnStreamChanged(EventArgs)

StreamChanged 이벤트를 발생시킵니다.

System_CAPS_pubmethodPlay()

새 스레드를 사용 하 여.wav 파일을 재생 하 고 로드 되지 않은 경우 먼저.wav 파일을 로드 합니다.

System_CAPS_pubmethodPlayLooping()

재생 하 고는 새 스레드를 사용 하 여.wav 파일을 반복 하 고 로드 되지 않은 경우 먼저.wav 파일을 로드 합니다.

System_CAPS_pubmethodPlaySync()

.Wav 파일을 재생 하 고 로드 되지 않은 경우 먼저.wav 파일을 로드 합니다.

System_CAPS_pubmethodStop()

사운드 재생 발생 하는 경우의 재생을 중지 합니다.

System_CAPS_pubmethodToString()

반환 된 String 의 이름을 포함 하는 Component, 있는 경우. 이 메서드는 재정의할 수 없습니다.(Component에서 상속됨)

이름설명
System_CAPS_pubeventDisposed

구성 요소를 호출 하 여 삭제 될 때 발생 된 Dispose 메서드.(Component에서 상속됨)

System_CAPS_pubeventLoadCompleted

.Wav 파일 성공 또는 실패 한 로드 된 경우 발생 합니다.

System_CAPS_pubeventSoundLocationChanged

이 때 새 오디오 원본이 경로 발생 SoundPlayer 설정한 합니다.

System_CAPS_pubeventStreamChanged

새 발생 Stream 이 오디오 소스 SoundPlayer 설정한 합니다.

SoundPlayer 클래스 로드 및.wav 파일을 재생 하기 위한 간단한 인터페이스를 제공 합니다. SoundPlayer 클래스 지원 URL, 파일 경로에서.wav 파일을 로드 한 Stream .wav 파일 또는.wav 파일을 포함 하는 포함된 리소스를 포함 하는 합니다.

사용 하는 소리를 재생 하는 SoundPlayer 클래스, 구성 된 SoundPlayer .wav 파일 및 재생 메서드 중 하나를 호출 경로 사용 합니다. 생성자 중 하나를 사용 하 여 또는 설정 하 여 재생 하려면.wav 파일을 식별할 수는 SoundLocation 또는 Stream 속성입니다. Load 메서드 중 하나를 사용 하 여 재생 하기 전에 파일을 로드할 수 또는 로드 플레이 방법 중 하나를 호출할 때까지 지연 될 수 있습니다. A SoundPlayer 에서.wav 파일을 로드 하도록 구성 된 Stream 또는 재생 시작 하기 전에 URL을 메모리에.wav 파일 로드 해야 합니다.

로드 하거나 동기적 또는 비동기적으로.wav 파일을 재생할 수 있습니다. 동기 로드를 호출 하거나 재생 메서드를 호출 하는 스레드에서 중단 될 수 있는 그리기 및 다른 이벤트를 설정할 수 있는 메서드가 반환 될 때까지 대기 합니다. 비동기 로드 또는 play 메서드를 호출 하면 호출 스레드를 중단 없이 계속 허용 합니다. 비동기 메서드 호출에 대 한 자세한 내용은 참조 하십시오. 방법: 백그라운드에서 작업 실행합니다.

경우는 SoundPlayer .wav 파일을 로드 했습니다를 발생 시킵니다.는 LoadCompleted 이벤트입니다. 검사할 수는 AsyncCompletedEventArgs 부하 성공 또는 실패 여부를 확인 하려면 이벤트 처리기에서. SoundLocationChanged 오디오 소스가 새 파일 경로 또는 URL로 설정 될 때 이벤트가 발생 합니다. StreamChanged 새 오디오 원본이 설정 된 경우 이벤트는 Stream합니다. 이벤트를 처리 하는 방법에 대 한 자세한 내용은 참조 NIB: 이벤트 사용합니다.

SoundPlayer에 대한 자세한 내용은 SoundPlayer 클래스 개요을 참조하세요.

System_CAPS_note참고

    SoundPlayer 클래스.mp3 또는.wma와 같은 다른 파일 형식으로 재생할 수 없습니다. 다른 파일 형식 재생 하려는 경우에 Windows Media Player 컨트롤을 사용할 수 있습니다. 자세한 내용은 참조 Using the Windows Media Player Control in a .NET Framework SolutionWindows Media Player Object Model Reference for Visual Basic .NET and C# Windows Media Player SDK에서.

다음 코드 예제에서는 SoundPlayer 클래스는 로컬 경로 또는 식별자 URI (Uniform Resource)에서.wav 파일을 재생 하도록 합니다.


using System;
using System.Collections;
using System.ComponentModel;
using System.Diagnostics;
using System.Drawing;
using System.Media;
using System.Windows.Forms;

namespace SoundApiExample
{
    public class SoundTestForm : System.Windows.Forms.Form
    {
        private System.Windows.Forms.Label label1;
        private System.Windows.Forms.TextBox filepathTextbox;        
        private System.Windows.Forms.Button playOnceSyncButton;
        private System.Windows.Forms.Button playOnceAsyncButton;
        private System.Windows.Forms.Button playLoopAsyncButton;
        private System.Windows.Forms.Button selectFileButton;

        private System.Windows.Forms.Button stopButton;
        private System.Windows.Forms.StatusBar statusBar;
        private System.Windows.Forms.Button loadSyncButton;
        private System.Windows.Forms.Button loadAsyncButton;        
        private SoundPlayer player;

        public SoundTestForm()
        {
            // Initialize Forms Designer generated code.
            InitializeComponent();

            // Disable playback controls until a valid .wav file 
            // is selected.
            EnablePlaybackControls(false);

            // Set up the status bar and other controls.
            InitializeControls();

            // Set up the SoundPlayer object.
            InitializeSound();
        }

        // Sets up the status bar and other controls.
        private void InitializeControls()
        {
            // Set up the status bar.
            StatusBarPanel panel = new StatusBarPanel();
            panel.BorderStyle = StatusBarPanelBorderStyle.Sunken;
            panel.Text = "Ready.";
            panel.AutoSize = StatusBarPanelAutoSize.Spring;
            this.statusBar.ShowPanels = true;
            this.statusBar.Panels.Add(panel);
        }

        // Sets up the SoundPlayer object.
        private void InitializeSound()
        {
            // Create an instance of the SoundPlayer class.
            player = new SoundPlayer();

            // Listen for the LoadCompleted event.
            player.LoadCompleted += new AsyncCompletedEventHandler(player_LoadCompleted);

            // Listen for the SoundLocationChanged event.
            player.SoundLocationChanged += new EventHandler(player_LocationChanged);
        }

        private void selectFileButton_Click(object sender, 
            System.EventArgs e)
        {
            // Create a new OpenFileDialog.
            OpenFileDialog dlg = new OpenFileDialog();

            // Make sure the dialog checks for existence of the 
            // selected file.
            dlg.CheckFileExists = true;

            // Allow selection of .wav files only.
            dlg.Filter = "WAV files (*.wav)|*.wav";
            dlg.DefaultExt = ".wav";

            // Activate the file selection dialog.
            if (dlg.ShowDialog() == DialogResult.OK)
            {
                // Get the selected file's path from the dialog.
                this.filepathTextbox.Text = dlg.FileName;

                // Assign the selected file's path to 
                // the SoundPlayer object.  
                player.SoundLocation = filepathTextbox.Text;
            }
        }

        // Convenience method for setting message text in 
        // the status bar.
        private void ReportStatus(string statusMessage)
        {
            // If the caller passed in a message...
            if ((statusMessage != null) && (statusMessage != String.Empty))
            {
                // ...post the caller's message to the status bar.
                this.statusBar.Panels[0].Text = statusMessage;
            }
        }

        // Enables and disables play controls.
        private void EnablePlaybackControls(bool enabled)
        {   
            this.playOnceSyncButton.Enabled = enabled;
            this.playOnceAsyncButton.Enabled = enabled;
            this.playLoopAsyncButton.Enabled = enabled;
            this.stopButton.Enabled = enabled;
        }

        private void filepathTextbox_TextChanged(object sender, 
            EventArgs e)
        {
            // Disable playback controls until the new .wav is loaded.
            EnablePlaybackControls(false);
        }

        private void loadSyncButton_Click(object sender, 
            System.EventArgs e)
        {   
            // Disable playback controls until the .wav is 
            // successfully loaded. The LoadCompleted event 
            // handler will enable them.
            EnablePlaybackControls(false);

            try
            {
                // Assign the selected file's path to 
                // the SoundPlayer object.  
                player.SoundLocation = filepathTextbox.Text;

                // Load the .wav file.
                player.Load();
            }
            catch (Exception ex)
            {
                ReportStatus(ex.Message);
            }
        }

        private void loadAsyncButton_Click(System.Object sender, 
            System.EventArgs e)
        {
            // Disable playback controls until the .wav is 
            // successfully loaded. The LoadCompleted event 
            // handler will enable them.
            EnablePlaybackControls(false);

            try
            {
                // Assign the selected file's path to 
                // the SoundPlayer object.  
                player.SoundLocation = this.filepathTextbox.Text;

                // Load the .wav file.
                player.LoadAsync();
            }
            catch (Exception ex)
            {
                ReportStatus(ex.Message);
            }
        }

        // Synchronously plays the selected .wav file once.
        // If the file is large, UI response will be visibly 
        // affected.
        private void playOnceSyncButton_Click(object sender, 
            System.EventArgs e)
        {	
            ReportStatus("Playing .wav file synchronously.");
            player.PlaySync();
            ReportStatus("Finished playing .wav file synchronously.");
        }

        // Asynchronously plays the selected .wav file once.
        private void playOnceAsyncButton_Click(object sender, 
            System.EventArgs e)
        {
            ReportStatus("Playing .wav file asynchronously.");
            player.Play();
        }

        // Asynchronously plays the selected .wav file until the user
        // clicks the Stop button.
        private void playLoopAsyncButton_Click(object sender, 
            System.EventArgs e)
        {
            ReportStatus("Looping .wav file asynchronously.");
            player.PlayLooping();
        }

        // Stops the currently playing .wav file, if any.
        private void stopButton_Click(System.Object sender,
            System.EventArgs e)
        {	
            player.Stop();
            ReportStatus("Stopped by user.");
        }

        // Handler for the LoadCompleted event.
        private void player_LoadCompleted(object sender, 
            AsyncCompletedEventArgs e)
        {   
            string message = String.Format("LoadCompleted: {0}", 
                this.filepathTextbox.Text);
            ReportStatus(message);
            EnablePlaybackControls(true);
        }

        // Handler for the SoundLocationChanged event.
        private void player_LocationChanged(object sender, EventArgs e)
        {   
            string message = String.Format("SoundLocationChanged: {0}", 
                player.SoundLocation);
            ReportStatus(message);
        }

        private void playSoundFromResource(object sender, EventArgs e)
        {
            System.Reflection.Assembly a = System.Reflection.Assembly.GetExecutingAssembly();
            System.IO.Stream s = a.GetManifestResourceStream("<AssemblyName>.chimes.wav");
            SoundPlayer player = new SoundPlayer(s);
            player.Play();
        }

        #region Windows Form Designer generated code
        private void InitializeComponent()
        {
            this.filepathTextbox = new System.Windows.Forms.TextBox();
            this.selectFileButton = new System.Windows.Forms.Button();
            this.label1 = new System.Windows.Forms.Label();
            this.loadSyncButton = new System.Windows.Forms.Button();
            this.playOnceSyncButton = new System.Windows.Forms.Button();
            this.playOnceAsyncButton = new System.Windows.Forms.Button();
            this.stopButton = new System.Windows.Forms.Button();
            this.playLoopAsyncButton = new System.Windows.Forms.Button();
            this.statusBar = new System.Windows.Forms.StatusBar();
            this.loadAsyncButton = new System.Windows.Forms.Button();
            this.SuspendLayout();
            // 
            // filepathTextbox
            // 
            this.filepathTextbox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right)));
            this.filepathTextbox.Location = new System.Drawing.Point(7, 25);
            this.filepathTextbox.Name = "filepathTextbox";
            this.filepathTextbox.Size = new System.Drawing.Size(263, 20);
            this.filepathTextbox.TabIndex = 1;
            this.filepathTextbox.Text = "";
            this.filepathTextbox.TextChanged += new System.EventHandler(this.filepathTextbox_TextChanged);
            // 
            // selectFileButton
            // 
            this.selectFileButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
            this.selectFileButton.Location = new System.Drawing.Point(276, 25);
            this.selectFileButton.Name = "selectFileButton";
            this.selectFileButton.Size = new System.Drawing.Size(23, 21);
            this.selectFileButton.TabIndex = 2;
            this.selectFileButton.Text = "...";
            this.selectFileButton.Click += new System.EventHandler(this.selectFileButton_Click);
            // 
            // label1
            // 
            this.label1.Location = new System.Drawing.Point(7, 7);
            this.label1.Name = "label1";
            this.label1.Size = new System.Drawing.Size(145, 17);
            this.label1.TabIndex = 3;
            this.label1.Text = ".wav path or URL:";
            // 
            // loadSyncButton
            // 
            this.loadSyncButton.Location = new System.Drawing.Point(7, 53);
            this.loadSyncButton.Name = "loadSyncButton";
            this.loadSyncButton.Size = new System.Drawing.Size(142, 23);
            this.loadSyncButton.TabIndex = 4;
            this.loadSyncButton.Text = "Load Synchronously";
            this.loadSyncButton.Click += new System.EventHandler(this.loadSyncButton_Click);
            // 
            // playOnceSyncButton
            // 
            this.playOnceSyncButton.Location = new System.Drawing.Point(7, 86);
            this.playOnceSyncButton.Name = "playOnceSyncButton";
            this.playOnceSyncButton.Size = new System.Drawing.Size(142, 23);
            this.playOnceSyncButton.TabIndex = 5;
            this.playOnceSyncButton.Text = "Play Once Synchronously";
            this.playOnceSyncButton.Click += new System.EventHandler(this.playOnceSyncButton_Click);
            // 
            // playOnceAsyncButton
            // 
            this.playOnceAsyncButton.Location = new System.Drawing.Point(149, 86);
            this.playOnceAsyncButton.Name = "playOnceAsyncButton";
            this.playOnceAsyncButton.Size = new System.Drawing.Size(147, 23);
            this.playOnceAsyncButton.TabIndex = 6;
            this.playOnceAsyncButton.Text = "Play Once Asynchronously";
            this.playOnceAsyncButton.Click += new System.EventHandler(this.playOnceAsyncButton_Click);
            // 
            // stopButton
            // 
            this.stopButton.Location = new System.Drawing.Point(149, 109);
            this.stopButton.Name = "stopButton";
            this.stopButton.Size = new System.Drawing.Size(147, 23);
            this.stopButton.TabIndex = 7;
            this.stopButton.Text = "Stop";
            this.stopButton.Click += new System.EventHandler(this.stopButton_Click);
            // 
            // playLoopAsyncButton
            // 
            this.playLoopAsyncButton.Location = new System.Drawing.Point(7, 109);
            this.playLoopAsyncButton.Name = "playLoopAsyncButton";
            this.playLoopAsyncButton.Size = new System.Drawing.Size(142, 23);
            this.playLoopAsyncButton.TabIndex = 8;
            this.playLoopAsyncButton.Text = "Loop Asynchronously";
            this.playLoopAsyncButton.Click += new System.EventHandler(this.playLoopAsyncButton_Click);
            // 
            // statusBar
            // 
            this.statusBar.Location = new System.Drawing.Point(0, 146);
            this.statusBar.Name = "statusBar";
            this.statusBar.Size = new System.Drawing.Size(306, 22);
            this.statusBar.SizingGrip = false;
            this.statusBar.TabIndex = 9;
            this.statusBar.Text = "(no status)";
            // 
            // loadAsyncButton
            // 
            this.loadAsyncButton.Location = new System.Drawing.Point(149, 53);
            this.loadAsyncButton.Name = "loadAsyncButton";
            this.loadAsyncButton.Size = new System.Drawing.Size(147, 23);
            this.loadAsyncButton.TabIndex = 10;
            this.loadAsyncButton.Text = "Load Asynchronously";
            this.loadAsyncButton.Click += new System.EventHandler(this.loadAsyncButton_Click);
            // 
            // SoundTestForm
            // 
            this.ClientSize = new System.Drawing.Size(306, 168);
            this.Controls.Add(this.loadAsyncButton);
            this.Controls.Add(this.statusBar);
            this.Controls.Add(this.playLoopAsyncButton);
            this.Controls.Add(this.stopButton);
            this.Controls.Add(this.playOnceAsyncButton);
            this.Controls.Add(this.playOnceSyncButton);
            this.Controls.Add(this.loadSyncButton);
            this.Controls.Add(this.label1);
            this.Controls.Add(this.selectFileButton);
            this.Controls.Add(this.filepathTextbox);
            this.MinimumSize = new System.Drawing.Size(310, 165);
            this.Name = "SoundTestForm";
            this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Show;
            this.Text = "Sound API Test Form";
            this.ResumeLayout(false);

        }
        #endregion

        [STAThread]
        static void Main()
        {
            Application.Run(new SoundTestForm());
        }
    }
}

.NET Framework
2.0 이후 사용 가능

이 형식의 모든 public static(Visual Basic의 공유 Visual Basic의 경우) 멤버는 스레드로부터 안전합니다. 인스턴스 멤버는 스레드로부터의 안전이 보장되지 않습니다.

맨 위로 이동
표시: